Symptom
När det finns för många samtidiga infogningar i samma hash-Bucket, eller om ad hoc SQL Server plan-cachen når gräns värdet för 160 036, kan allvarlig konkurrens för SOS_CACHESTORE spinlock uppstå. I det här fallet sker en hög CPU-användning i Microsoft SQL Server.
Orsak
Problemet uppstår när SQL Server-planens cache når sin post gräns och abonnemang med låga kostnader måste avlägsnas för att kunna infoga nya abonnemang. Detta orsakar omfattande konkurrens för SOS_CACHESTORE-spinlock som ger synkronisering för hash-tabellens buckets för SQL Server-plan.
Lösning
Kumulativ uppdaterings information
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Mer information
Plan-cachen har två gränser: Total storlek och totalt antal abonnemang. Gräns värdena för storlek och inmatning förklaras i följande fakta blad:
Interna abonnemang för planera cacheminnet
Det maximala antalet poster som ett plan-cache kan innehålla är fyra gånger antalet Bucket. Du kan kontrol lera informationen genom att köra följande frågor:
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' )
I till exempel 64-bitars system är antalet buckets för SQL Server-abonnemanget 40 009. Därför är det maximala antalet poster som får plats i SQL Server-plan-cachen 160 036.
Om du har en arbets belastning som använder olika ad hoc-frågor kan denna gräns bli en Flask hals. Den ändring som görs av den här snabb korrigeringen löser den här situationen. När du har installerat den här snabb korrigeringen och aktiverat ändringen med start spårnings flaggan-T 174, ökas antalet Bucket till 160 001 på 64-bitars system. Abonnemanget kan då innehålla högst 640 004-abonnemang.
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".