KB3162589 - ВИПРАВЛЕННЯ. Зниження продуктивності SQL Server разі підвищеного використання ЦП у привілейованому режимі та очікування затримки сторінки

Застосовується до
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)

Ознаки

Після інсталяції SQL ServerSQL Server 2014 із пакетом оновлень 1 (SP1), SQL ServerSQL Server 2012 SP3 або SQL ServerSQL Server 2016 спостерігається низька продуктивність запитів і використання ЦП у привілейованому режимі (ядро) до перезавантаження сервера. Також може спостерігатися велика кількість PAGELATCH_* очікування.

Спосіб усунення проблеми

Цю проблему вирішено в наведених нижче сукупних оновленнях SQL ServerSQL Server:

Рекомендація: інсталюйте останній сукупний пакет оновлень для SQL Server

Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Радимо завантажити та інсталювати останні сукупні оновлення для SQL Server.

      

        
      

Причина

SQL ServerSQL Server використовує динамічну логіку застрягання та зниження засувки (super/sub-latch). Це покращує SQL Server продуктивність і масштабованість, відстежуючи кількість придбань на засувці, а також те, скільки часу має знадобитися, щоб придбати ту саму засувку, якщо не було жодних суперечок із засувкою. Потім на основі цієї моделі підвищуються відповідні засувки (супер-засувки). Коли є багато змін (вставки/оновлення/видалення) на купі або BTree (HoBT), засувки, пов'язані з HoBT, можуть бути підвищені до статусу суперфіксатора. Однак пониження в посаді не відбувається автоматично. Детальніше про супер/субфіксацію можна прочитати в цій статті.

Якщо ці HoBT буде пізніше перерозподілено, звільнений HoBT повернеться до глобального кешу для повторного використання. Коли цей HOBT використовується повторно, він повторно використовує раніше підвищену засувку, навіть якщо немає жодних суперечок щодо HoBT. Це збільшує навантаження на ЦП. Така поведінка збільшує використання ЦП у привілейованому режимі (ядра) SQL ServerSQL Server до перезавантаження сервера. Це збільшення зазвичай додає не більше кількох мікросекунд під час кожного виконання. Ви також можете побачити велику кількість очікування PAGELATCH_* через ці розширені суперфіксатори на HoBT. 

Стан

Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".