Set nocount untuk optimasi Stored Procedures SQL Server Juli 4, 2008
Posted by Hariesya Ivan in Database.1 comment so far
Stored procedures dalam SQL server 2000 itu ada 2 macam yaitu system stored procedures dan user stored procedures. User stored procedures terbagi lagi menjadi 3 bagian yaitu :
1. User Defined stored procedures
2. Trigger
3. User defined function
Saya tidak akan membahas mengenai pengertian masing-masing stored procedures diatas, namun saya mencoba memberikan salah satu cara untuk optimasi performance dalam eksekusi stored procedures yaitu dengan menggunakan “Set nocount on”.
Kalo kita jalankan query dengan menggunakan query analyzer sebagai contoh :
SELECT * FROM authors
Message:
(1 row(s) affected)
maka akan selalu muncul pesan statistik berapa banyak jumlah row dari hasil query, didalam stored procedures terutama yang kompleks akan banyak pesan statistik yang di munculkan. Hal ini tentu saja akan menambah waktu proses dan bandwith di jaringan. Oleh sebab itu maka menonaktifkan pesan statistik ini dapat mengurangi proses yg tidak dibutuhkan sehingga performance dari stored procedures akan lebih baik.
create procedure test_coy
as
begin
declare @i int
create table test_coy_table (
testID int, [user] varchar (50), description varchar(100) )
set @i = 0
while @i < 1000
begin
set @i= @i + 1
insert into test_coy_table (testid,[user]) values(@i, ‘user ‘ + cast(@i as varchar(3)))
end
select * from test_coy_table
end
exec test_coy
message:
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
.
.
(1000 row(s) affected)
Contoh pemakaian set nocount :
alter procedure test_coy
as
begin
set nocount on
declare @i int
create table test_coy_table (
testID int, [user] varchar (50), description varchar(100) )
set @i = 0
while @i < 1000
begin
set @i= @i + 1
insert into test_coy_table (testid,[user]) values(@i, ‘user ‘ + cast(@i as varchar(3)))
end
select * from test_coy_table
end
exec test_coy
message: