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:
- Kumulatívna aktualizácia 2 pre SQL Server 2016
- Kumulatívna aktualizácia 5 pre balík SQL Server 2012 Service Pack 3 (SP3)
- Kumulatívna aktualizácia 7 pre SQL Server 2014 SP1
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:
- Najnovšia kumulatívna aktualizácia pre SQL Server 2016
- Najnovšia kumulatívna aktualizácia balíka SQL Server 2012 SP3
- Najnovšia kumulatívna aktualizácia pre SQL Server 2014 SP1
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.