Belirtiler
Aynı karma demetinde çok fazla eşzamanlı ekleme gerçekleştiğinde veya geçici SQL Server plan önbelleği 160.036 giriş sınırına ulaştığında, SOS_CACHESTORE spinlock üzerinde ciddi çekişme oluşur. Bu durumda, Microsoft SQL Server'da yüksek CPU kullanımı gerçekleşir.
Neden
Bu sorun, SQL Server plan önbelleği giriş sınırına ulaştığında ve yeni planlar eklemek için düşük maliyetli planların çıkarılması gerektiğinde oluşur. Bu, SQL Server planı önbelleğinin karma tablo demetleri için eşitleme sağlayan SOS_CACHESTORE spinlock için yoğun çekişmelere neden olur.
Çözüm
Toplu Güncelleştirme bilgileri
Sorun ilk olarak aşağıdaki SQL Server toplu güncelleştirmesinde düzeltildi.
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmede yer alan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
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ırları aşağıdaki teknik incelemede açıklanmıştır:
Plan önbelleğinin tutabileceği en fazla giriş sayısı, demet sayısının dört katıdır. 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'dır. Bu nedenle, SQL Server planı önbelleğine sığabilecek en fazla giriş sayısı 160.036'dır.
Farklı geçici sorgular kullanan bir iş yükünüz varsa bu sınır bir performans sorununa dönüşebilir. Bu düzeltme tarafından yapılan değişiklik bu durumu ele alır. Bu düzeltmeyi yükledikten ve "-T 174" başlangıç izleme bayrağını kullanarak değişikliği etkinleştirdikten sonra, 64 bit sistemlerde demet sayısı 160.001'e çıkarılır. Plan önbelleği daha sonra en fazla 640.004 planı barındırır.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.