KB3162589 – RETTELSE: Reduceret SQL Server ydeevne, når der er forhøjet privilegeret tilstand, CPU-brug og en stor mængde ventetider på sidelås

Gælder for
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

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:

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:

      

        
      

Å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".