Symptomer
Når du har installeret SQL Server 2014 Service Pack 1 (SP1), SQL Server 2012 SP3 eller SQL Server 2016, oplever du langsom ydeevne for forespørgsler og forhøjet privilegeret CPU-brug (kernetilstand), indtil serveren genstartes. Du kan også se en stor mængde PAGELATCH_* ventetider.
Løsning
Problemet blev rettet i følgende kumulative opdateringer af SQL Server:
- Akkumuleret opdatering 2 til SQL Server 2016
- Kumulativ opdatering 5 til SQL Server 2012 Service Pack 3 (SP3)
- Kumulativ opdatering 7 til SQL Server 2014 SP1
Anbefaling: Installér den seneste kumulative opdatering til SQL Server
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Vi anbefaler, at du downloader og installerer de seneste kumulative opdateringer til SQL Server:
- Seneste kumulative opdatering til SQL Server 2016
- Seneste kumulative opdatering til SQL Server 2012 SP3
- Seneste kumulative opdatering til SQL Server 2014 SP1
Årsag
SQL Server bruger dynamisk låsefremstød og degraderingslogik (super/sub-lås). Dette forbedrer SQL Server-ydeevnen og skalerbarheden ved at holde styr på antallet af anskaffelser på en lås, og på hvor lang tid det vil tage at opnå den samme lås, hvis der ikke fandtes nogen låsekonflikt. Derefter promoveres berettigede låse (superlås) baseret på denne model. Når der er mange ændringer (indsættelser/opdateringer/sletninger) på en Heap eller BTree (HoBT), kan de HoBT-tilknyttede lås blive forfremmet til superlåsstatus. Degraderingen sker dog ikke automatisk. Du kan læse mere om super/sub-latching i denne artikel.
Hvis disse HoBT'er senere deallokeres, går den frigivne HoBT tilbage til en global cache til genbrug. Når denne HOBT genbruges, genbruger den den tidligere promoverede lås, selv når der ikke er nogen strid på HoBT. Dette tilføjer CPU-omkostninger. Denne funktionsmåde øger CPU-brugen i privilegeret tilstand (kerne) i SQL Server, indtil serveren genstartes. Denne stigning tilføjer typisk ikke mere end flere mikrosekunder med hver udførelse. Du kan også se en stor mængde PAGELATCH_* ventetider på grund af disse udvidede superlåse på HoBT'er.
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".