Ознаки
Після інсталяції SQL ServerSQL Server 2014 із пакетом оновлень 1 (SP1), SQL ServerSQL Server 2012 SP3 або SQL ServerSQL Server 2016 спостерігається низька продуктивність запитів і використання ЦП у привілейованому режимі (ядро) до перезавантаження сервера. Також може спостерігатися велика кількість PAGELATCH_* очікування.
Спосіб усунення проблеми
Цю проблему вирішено в наведених нижче сукупних оновленнях SQL ServerSQL Server:
- Сукупний пакет оновлень 2 для SQL ServerSQL Server 2016
- Сукупний пакет оновлень 5 для SQL Server 2012 із пакетом оновлень 3 (SP3)
- Сукупний пакет оновлень 7 для SQL ServerSQL Server 2014 SP1
Рекомендація: інсталюйте останній сукупний пакет оновлень для SQL Server
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Радимо завантажити та інсталювати останні сукупні оновлення для SQL Server.
- Останнє сукупне оновлення для SQL ServerSQL Server 2016
- Останнє сукупне оновлення для SQL ServerSQL Server 2012 SP3
- Останнє сукупне оновлення для SQL ServerSQL Server 2014 SP1
Причина
SQL ServerSQL Server використовує динамічну логіку застрягання та зниження засувки (super/sub-latch). Це покращує SQL Server продуктивність і масштабованість, відстежуючи кількість придбань на засувці, а також те, скільки часу має знадобитися, щоб придбати ту саму засувку, якщо не було жодних суперечок із засувкою. Потім на основі цієї моделі підвищуються відповідні засувки (супер-засувки). Коли є багато змін (вставки/оновлення/видалення) на купі або BTree (HoBT), засувки, пов'язані з HoBT, можуть бути підвищені до статусу суперфіксатора. Однак пониження в посаді не відбувається автоматично. Детальніше про супер/субфіксацію можна прочитати в цій статті.
Якщо ці HoBT буде пізніше перерозподілено, звільнений HoBT повернеться до глобального кешу для повторного використання. Коли цей HOBT використовується повторно, він повторно використовує раніше підвищену засувку, навіть якщо немає жодних суперечок щодо HoBT. Це збільшує навантаження на ЦП. Така поведінка збільшує використання ЦП у привілейованому режимі (ядра) SQL ServerSQL Server до перезавантаження сервера. Це збільшення зазвичай додає не більше кількох мікросекунд під час кожного виконання. Ви також можете побачити велику кількість очікування PAGELATCH_* через ці розширені суперфіксатори на HoBT.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".