Simptome
Atunci când apar prea multe inserții simultane în același bucket de hash sau memoria cache ad hoc a planului de SQL Server atinge limita de intrare de 160.036, are loc o dependență severă SOS_CACHESTORE are loc un spinlock. În această situație, se produce o utilizare intensă a procesorului în Microsoft SQL Server.
Cauză
Problema apare atunci când memoria cache a planului de SQL Server atinge limita de intrare și planurile cu costuri reduse trebuie evacuate pentru a insera planuri noi. Acest lucru cauzează o agitație mare pentru SOS_CACHESTORE spinlock care furnizează sincronizare pentru bucketurile de tabel hash ale memoriei cache de plan SQL Server.
Rezolvare
Informații despre actualizarea cumulativă
Problema a fost remediată prima dată în următoarea actualizare cumulativă a SQL Server.
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Mai multe informații
Memoria cache a planului are două limite: dimensiunea totală și numărul total al tuturor planurilor. Limitele pentru dimensiunea și numărul de intrări sunt explicate în următoarea carte albă:
Numărul maxim de intrări pe care le poate reține o memorie cache de plan este de patru ori numărul de bucket.) Puteți verifica aceste informații rulând următoarele interogări:
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' )
De exemplu, pe sistemele pe 64 de biți, numărul de bucketuri pentru memoria cache a planului de SQL Server este 40.009. Prin urmare, numărul maxim de intrări care se pot încadra în memoria cache a planului de SQL Server este 160.036.
Dacă aveți un volum de lucru care utilizează interogări ad-hoc diferite, această limită poate deveni un blocaj. Modificarea efectuată de această remediere rapidă tratează această situație. După ce instalați această remediere rapidă și activați modificarea utilizând semnalizatorul de urmărire a pornirii "-T 174", numărul de bucket-uri este mărit la 160.001 pe sistemele pe 64 de biți. Apoi, memoria cache a planului poate cuprinde maximum 640.004 planuri.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.