Ekleyen:
Abdullah ALTINTAŞ Bilge Adam Takım Lideri
Tarih:29.06.2016 Okunma Sayısı:2231
Microsoft SQL Server ürününü kullanarak veritabanı oluşturma, verilerin işlenmesi, verilerin saklanması ve veritabanının yönetilmesini rahatlıkla gerçekleştirebilmekteyiz. Özellikle veritabanı nesnelerinin oluşturulması sırasında performans ile ilgili noktalara ayrıca dikkat etmemiz gerekiyor. Ad hoc query olarak yazılan ve çalıştırılan bir sorgunun sonuçları çok kısa bir zamanda getirilebiliyorken, aynı sorguyu parametre kabul edecek şekilde bir stored procedure olarak yazdığımızda bazı durumlarda çok daha uzun bir sürede sonuçların getirildiğine şahit olabiliyoruz. Aslında literatürde “parameter sniffing” olarak adlandırılan bu olayda, SQL Server’ın çalışma planı diye adlandırılan execution planının memoryde saklanması sonucu,stored procedure’un diğer çalıştırılmalarında farklı parametre değerleri girilmesine rağmen plan cache‘de tutulan execution planının kullanılması bu performans kaybına neden olmaktadır. Parameter sniffing olayını başka bir yazımızda detaylı olarak ele alacağız. Ancak benzer bir senaryo ile karşılaştığımızda ne yapabileceğimizi de kısaca ele almak gerekiyor. Bu yazımızda SQL Server üzerinde hem plan cache hem de memory buffer temizleme işleminin nasıl yapılacağını ele alacağız.