İpucu

 

Bu gün ki makalemde sizlere Sql Server Query Planla Query lerimizi SQL Server ‘ın  sorguyu inceleme ve compile işlemi için ne kadar vakit harcadığını bulmayı göreceğiz.

Sql Server da yazdığımız Query lerimizin  incelenme ve compile sürelerini Query lerimizin başına ; SET STATISTICS TIME ON yazıp çalıştırmamız yeterlidir

 

Örneğin;

 

 

 

Yukarıda gördüğünüz üzere ;

SET STATISTICS TIME ON

Select * from Abone a inner join Sozlesme s on a.Subs_Code=s.Subs_Code where s.Subs_Code=763

Sonucunda SQL Server sorgunun parse ve compile işlemini 4 ms. de. Sorgunun çalıştırılması ise 0 ms. sonuçlandırdı.

Aynı sorguyu tekrar çalıştırdığımızda ise ;

SQL Server aynı sorguyu ikinci kez çalıştırdığımız için Plan Cache ten okuma yaptı ve gördüğünüz gibi

parse ve compile işlemini 0 ms. de. Sorgunun çalıştırılması ise 0 ms. sonuçlandırdı.

Şimdi buraya kadar Sorgumuzun çalışma süresi ve parse ve compile sürelerini gördük aynı zamanda plan cache den gelen

query nin daha hızlı olduğunuda öğrendik.Bildiğimiz üzere bu query planları Plan Cache de tutuluyor.Bazen plan cache in

temizlenmesi gerektiği durumlarla karşılaşabiliriz.Böyle durumlarda; DBCC FREEPROCCACHE komutunu kullanacağız.

Bu komutla Plan Cache mizi temizleyebiliyoruz.

Yukarıda da görüldüğü üzere ;

DBCC FREEPROCCACHE(0x05000400A54369234021BB81000000000000000000000000) query sini yazıp plan cache de ki istediğimiz

cache lenmiş planın plan_handle ını yazarak silebiliriz.Eğer tüm cache lenmiş planları silmek istiyorsak direkt

DBCC FREEPROCCACHE yazmamız yeterlidir.