KB3162589 – JAVÍTÁS: Csökkent SQL Server teljesítmény magasabb szintű emelt szintű CPU-használat és sok oldalzárolási várakozás esetén

Hatókör
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)

Tünetek

Az SQL Server 2014 Service Pack 1 (SP1), az SQL Server 2012 SP3 vagy az SQL Server 2016 telepítését követően a kiszolgáló újraindításáig lassú lekérdezési teljesítményt tapasztal, és a védett mód szintje magas szintű (kernel) módú CPU-használatot tapasztal. Emellett nagy mennyiségű PAGELATCH_* várakozási időpontot is láthat.

Megoldás

A hiba javítását az SQL Server következő összegző frissítései tartalmazzák:

Javaslat: Telepítse az SQL Server legújabb összegző frissítését

Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Javasoljuk, hogy töltse le és telepítse az SQL Server legújabb összegző frissítéseit:

      

        
      

Ok

Az SQL Server dinamikus zárolási előléptetést és lefokozási logikát (szuper- és segédzárolást) használ. Ez javítja az SQL Server teljesítményét és méretezhetőségét azáltal, hogy nyomon követi a retesz beszerzéseinek számát, és azt, hogy mennyi ideig tart ugyanannak a retesznek a beszerzése, ha nincs reteszelési versengés. Ezután a modell alapján a jogosult reteszeket (szuperretesz) előléptetik. Ha sok változtatás (beszúrás/frissítés/törlés) történik egy halomon vagy BTree-n (HoBT), a HoBT-társított reteszek szuper retesz státuszba léphetnek. A lefokozás azonban nem megy végbe automatikusan. A szuper- és segédretekerésről ebben a cikkben olvashat bővebben.

Ha ezeket a HoBT-ket később felszabadítják, a felszabadított HoBT visszakerül a globális gyorsítótárba újrafelhasználás céljából. Amikor ezt a HOBT-ot újra felhasználják, újra felhasználja a korábban előléptetett reteszt, még akkor is, ha a HoBT-n nincs vita. Ez növeli a processzorral kapcsolatos többletterhelést. Ez a viselkedés a kiszolgáló újraindításáig növeli az SQL Server kiemelt (kernel) módú CPU-használatát. Ez a növekedés általában nem ad hozzá több néhány mikroszekundumnál az egyes végrehajtásokkal. A HoBT-k kiterjesztett szuperreteszei miatt nagy mennyiségű PAGELATCH_* várakozást is tapasztalhat. 

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.