SET STATISTICS IO ile Sorgu Istatistiklerine Göz Atmak
Yazdigimiz sorgunun olusturdugu disk aktivitelerine bakmak için SET STATISTICS IO özelligini kullanabiliriz. Bu sayede ayni sonucu veren farkli sorgularin hangisinin daha çok disk üzerinde islem yaptigini görebilir ve sorgumuzu optimize etmek için gerekli degisiklikleri yapabiliriz.
Çok büyük veriler ile çalisirken, birden fazla join islemi kullanan sorgular yazdigimizda bazen çok uzun süre beklemek zorunda kaliyoruz. STATISTIC IO özelligini kullanarak sorgu üzerinde degisiklikler yaparak ayni sonucu üreten ama daha az disk okumasi yapan sorguyu seçebiliriz.
Kullanimi :
SET STATISTICS IO { ON | OFF }
STATISTICS IO ON oldugu zaman bundan sonra çalisan ayni baglantidaki tüm sorgular için IO istatistikleri tutulur ve sorgu bitiminde sonuç döner. Eger yeniden kapatmak istersek STATISTICS IO OFF dememiz gerekir.
.Örnek :
SET STATISTICS IO ON
select m.MakaleBaslik,y.AdSoyad from Makale m
inner join Yazar y on y.YazarKey = m.YazarKey
Yukaridaki Sorgu sonucu asagidaki gibi bir istatistik bilgisi döner.
Table ‘Makale’. Scan count 1, logical reads 25
, physical reads 0, read-ahead reads 0
, lob logical reads 0, lob physical reads 0
, lob read-ahead reads 0.
Table ‘Yazar’. Scan count 1, logical reads 4
, physical reads 0, read-ahead reads 0
, lob logical reads 0, lob physical reads 0
, lob read-ahead reads 0.
STATISTICS IO sonucu verilen temel bilgiler asagidaki gibidir
Çikti | Anlami |
---|---|
Table | Tablonun Adi |
Scan count | Index veya tablo scan sayisi |
logical reads | Data Cache’inden okunan page sayisi |
physical reads | Diskten okunan page sayisi |
read-ahead reads | Sorgu için cache’e konulan page sayisi |
Büyük kayitlar içeren tablolarinizi index tanimlayarak ve index tanimlamadan IO sonuçlarini inceleyerek degisimin farkini görebilirsiniz.