Belirtiler
Aynı karma sepete çok fazla sayıda eşzamanlı ekleme yapıldığında veya geçici SQL Server plan önbelleği 160.036 giriş sınırına ulaşırsa, SOS_CACHESTORE sayaç kilidi üzerinde ciddi bir çekişme gerçekleşir. Bu durumda, Microsoft SQL Server 'da yüksek CPU kullanımı gerçekleşir.
Neden
Sorun, SQL Server planlama önbelleği giriş sınırına ulaştığında oluşur ve yeni planlar eklemek için düşük maliyetli planlar çıkarılmalıdır. Bu, SQL Server plan önbelleğinin karma tablo demetlerinin eşitlenmesini sağlayan SOS_CACHESTORE sayaç kilidi için çok fazla çekişme yapılmasına neden olur.
Çözüm
Toplu güncelleştirme bilgileri
Sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmesinde giderilmiştir.
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
Ek Bilgi
Plan önbelleğinin iki sınırı vardır: Toplam boyut ve tüm planların toplam sayısı. Boyut ve giriş sayısı sınırlamaları aşağıdaki teknik incelemede açıklanmıştır:
Plan önbelleğinin tutabileceğiniz en fazla girdi sayısı, demet sayısının dört katı olur. Aşağıdaki sorguları çalıştırarak bu bilgileri doğrulayabilirsiniz:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
Örneğin, 64 bit sistemlerde, SQL Server plan önbelleği için demet sayısı 40.009 ' dir. Bu nedenle, SQL Server plan önbelleğine sığabilecek en yüksek girdi sayısı 160.036.
Farklı ad hoc sorgular kullanan bir iş yükünüzü kullanıyorsanız, bu sınır tıkanıklık olabilir. Bu düzeltme tarafından oluşturulan değişiklik bu duruma yöneliktir. Bu düzeltmeyi yükleyip "-T 174" başlangıç izleme bayrağını kullanarak değişikliği etkinleştirdikten sonra, Aralık sayısı, 64 bit sistemlerde 160.001 olarak artırılır. Plan önbelleği daha sonra maksimum 640.004 planını tutabilir.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.