DBCC FREEPROCCACHE ve DBCC DROPCLEANBUFFERS


DBCC FREEPROCCACHE ile plan cache’deki bütün plan’ları sıfıryabiliriz. Böylece gelen her stored procedure memory’de kayıtlı bir execution plan’ı olmadığı için yeniden compile olmak zorunda kalır.

 

Bazı durumlarda, örneğin parameter sniffing gibi bir sorun yaşıyorsanız sorguların yeniden compile olması sorununuzu çözebilir. “Parameter Sniffing” isimli makalede parameter sniffing hakkında detayları bulabilirsiniz.

 

Aşağıdaki komutla plan cache’deki tüm query plan’ları temizleyebilirsiniz.

 

Aşağıdaki komutla da belli bir query plan için plan cache’deki plan’ı temizleyebilirsiniz.

 

 

Aşağıdaki sorgu yardımıyla sorgunuzun plan_handle’ını bulabilirsiniz.

 

 

DBCC DROPCLEANBUFFERS ile de buffer cache’deki üzerinde değişiklik olmamış veriyi temizleyebilirsiniz. SQL Server’da veriler direk olarak diskten okunmaz. Öncelikle diskten memory’e(buffer cache) aktarılır ve sonrasında memory üzerinden kullanıcılara iletilir. Eğer veri üzerinde değişiklik yapılırsa checkpoint işlemi gerçekleştiğinde bu değişiklik yapılan veriler disk’e yazılır. Üzerinde değişiklik olmayan kayıtlar ise clean buffer olarak adlandırılır. DBCC DROPCLEANBUFFERS ile bu clean buffer’ı temizleriz.

 

Bu komutu çalıştırmadan önce CHECKPOINT komutunu çalıştırarak üzerinde değişiklik yapılmış verilerin diske yazılmasını sağlayabilirsiniz.

 

Checkpoint ve SQL Server’ın çalışma şekliyle ilgili olarak “Database Checkpoint Nedir” isimli makaleyi okumanızı tavsiye ederim.

 

 

Production ortamlarda kullanmamanızı öneririm.

 

Aşağıdaki şekilde kullanabilirsiniz.

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.