KB3162589 – OPRAVA: Nižší výkon SQL Server pri zvýšenom zaťažení procesora v privilegovanom režime a vysokém počte čakaní so zámkami strán

Vzťahuje sa na
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)

Príznaky

Po inštalácii balíka SQL Server 2014 Service Pack 1 (SP1), SQL Server 2012 SP3 alebo SQL Server 2016 dochádza k pomalému využívaniu dotazov a zvýšenému využívaniu procesora v privilegovanom režime (jadro) až do reštartovania servera. Môže sa tiež vyskytnúť vysoký objem čakaní PAGELATCH_*.

Riešenie

Tento problém bol opravený v nasledujúcich súhrnných aktualizáciách SQL Server:

Odporúčanie: Nainštalujte najnovšiu kumulatívnu aktualizáciu pre SQL Server

Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Odporúčame stiahnuť a nainštalovať najnovšie kumulatívne aktualizácie pre SQL Server:

      

        
      

Príčina

SQL Server používa dynamické povýšenie latchu a logiku zníženia úrovne (super/sub-latch). To zlepšuje výkon a škálovateľnosť SQL Server tým, že sleduje počet získaní západky a ako dlho by malo trvať získanie rovnakej západky, ak neexistoval žiadny spor o západku. Potom sa oprávnené západky povýšia (superzápadky) na základe tohto modelu. Ak je na halde alebo BTree (HoBT) veľa zmien (vloženie/aktualizácia/odstránenie), západky súvisiace s HoBT môžu byť povýšené do stavu super západky. Degradácia však neprebieha automaticky. Viac o super/sub-lockingu si môžete prečítať v tomto článku.

Ak sa tieto HoBT neskôr predelia, uvoľnený HoBT sa vráti do globálnej vyrovnávacej pamäte na opätovné použitie. Keď sa tento HOBT opätovne použije, znovu použije predtým povýšenú západku, aj keď na HoBT nie je žiadny spor. To zvyšuje zaťaženie procesora. Toto správanie zvyšuje využitie procesora SQL Server v privilegovanom režime (jadro) až do reštartovania servera. Toto zvýšenie zvyčajne nepridáva viac ako niekoľko mikrosekúnd s každým spustením. Môžete tiež vidieť vysoký objem čakania PAGELATCH_* kvôli týmto rozšíreným superzápadkám na HoBT. 

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.