Symptomen
Wanneer er te veel gelijktijdige invoeg gevallen plaatsvinden in dezelfde hash-Bucket of als de cache voor ad hoc SQL Server-Planning de invoer limiet van 160.036 bereikt, is er sprake van grote inhoud op SOS_CACHESTORE spinlock. In deze situatie vindt u een hoog CPU-gebruik in Microsoft SQL Server.
Oorzaak
Het probleem kan zich voordoen wanneer de cache van de SQL Server-Planning de limiet bereikt en abonnementen met lage kosten moet worden verwijderd om nieuwe plannen in te voegen. Dit veroorzaakt een zware inhoudsering voor de SOS_CACHESTORE spinlock die synchronisatie biedt voor de hash-tabel buckets van de SQL Server-beheer cache.
Oplossing
Cumulatieve update gegevens
Het probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Meer informatie
De cache van het plan heeft twee beperkingen: de totale grootte en het totale aantal alle abonnementen. De limieten voor het aantal grootte en vermeldingen worden beschreven in het volgende White Paper:
Het maximale aantal vermeldingen dat een cache van een plan kan vasthouden, is vier maal het aantal buckets. U kunt deze informatie controleren door de volgende query's uit te voeren:
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' )
Op 64-bits systemen is bijvoorbeeld het aantal buckets voor de SQL Server-plannings cache 40.009. Het maximale aantal vermeldingen dat binnen de cache van de SQL Server-planning past, is 160.036.
Als u een werkbelasting hebt met verschillende ad hoc-query's, kan deze limiet een bottleneck worden. De wijziging die door deze hotfix wordt aangebracht, bevat deze situatie. Nadat u deze hotfix hebt geïnstalleerd en de wijziging hebt ingeschakeld met de vlag voor het starten van traceren, en T 174, wordt het aantal buckets van de waarde 160.001 op 64-bits systemen verhoogd tot. De cache van het plan kan maximaal 640.004-abonnementen bevatten.
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.