Symptomer
Når du enten bruger en ny forekomst af Microsoft SQL Server 2016 (eller 2017) eller en forekomst af SQL Server 2016 (eller 2017), der er opgraderet fra en tidligere version af SQL Server, oplever du problemer med ydeevnen på grund af højt CPU-forbrug. Hvis du forespørger i tabellen sys.dm_os_spinlock_stats , vil du desuden bemærke en høj værdi i kolonnen med skalaer for rækkerneSECURITY_CACHE (Sikkerhedscache) og CMED_HASH_SET (metadatacache) (sammenlignet med andre rækker i tabellen). Du bemærker f.eks. følgende værdier.
Årsag
Dette problem opstår på grund af høj spin lock-strid i et meget samtidigt system. I disse operativsystemer konkurrerer flere CPU-tråde om ressourcer og drejer om et længere interval, mens de kører i en løkke med jævne mellemrum for at afgøre, om ressourcen er tilgængelig i stedet for straks at give. Når flere CPU-tråde bliver ved med at rotere (i et stykke tid i løkke) for en ressource i stedet for at give, medfører dette problemer med høj CPU-brug og ydeevne.
Løsning
Dette problem blev rettet i følgende kumulative opdateringer til SQL Server:
Bemærk Når du har anvendt SQL Server 2016 Kumulativ opdatering 2 (CU2), ændres navnene på SECURITY_CACHE og CMED_HASH_SET til henholdsvis LOCK_RW_SECURITY_CACHE og LOCK_RW_CMED_HASH_SET. Når CU2 er anvendt, vises værdierne som følger:
Hver ny samlet opdatering til SQL Server indeholder alle hotfixes og alle de sikkerhedsrettelser, der var inkluderet i den tidligere akkumulerede opdatering. Se de seneste kumulative opdateringer til SQL Server:
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi , som Microsoft bruger til at beskrive softwareopdateringer.
Hvidbogen Diagnosing and Resolving Spinlock Contention on SQL Server diskuterer problemer og løsninger, der er relateret til spinlock-strid i detaljer.