Symptomer
Når du setter inn for mange samtidige forekommer i samme hash-minneområde eller i ad-hoc SQL Server plan hurtigbuffertreff posten grensen for 160,036, oppstår alvorlige kamp om ressursene på SOS_CACHESTORE spinlock. I denne situasjonen oppstår en høy CPU-bruk i Microsoft SQL Server 2012 eller SQL Server-2014.
Årsak
Dette problemet oppstår fordi når den SQL Server plan hurtigbuffertreff grensen oppføring planer med lave kostnader må kastes for å sette inn nye planer. Dette fører til stor kamp om ressursene for SOS_CACHESTORE-spinlock som gir synkronisering for Nummertabellfilsamlinger av hurtigbufferen for SQL Server-planen.
Oppløsning
Informasjon om kumulativ oppdatering
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Hvis du vil ha mer informasjon
Hurtigbufferen for planen har to grenser, den totale størrelsen og summen av alle planer. Størrelse og posten antall grensene er forklart i hvitboken Planlegger Cache internt. Maksimalt antall oppføringer som kan inneholde en plan-hurtigbuffer er fire ganger av bøtter opptellingen. Du kan kontrollere denne informasjonen ved hjelp av de følgende spørringene:
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' )
På 64-biters systemer er for eksempel bøtter for hurtigbufferen for SQL Server-plan for 40,009. Derfor er det maksimale antallet poster som får plass i hurtigbufferen for SQL Server-plan for 160,036. Når du har en arbeidsmengde som bruker ulike ad hoc-spørringer, kan denne grensen, blir en flaskehals. I slike tilfeller kan du bruke endringen i denne hurtigreparasjonen. Når du installerer denne hurtigreparasjonen, og aktivere endringen ved hjelp av oppstart sporingen flagg -T 174, bucket opptellingen er økt til 160,001 på 64-biters systemer. Derfor kan planen hurtigbufferen nå inneholde maksimalt antall 640,004 planer.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".