KB4057280 - ИСПРАВЛЕНО: высокая загрузка ЦП, когда большой индекс используется в запросе к таблице, оптимизированной для памяти в SQL Server

Применяется к
SQL Server 2016 Service Pack 1 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 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Проблема

Рассмотрим следующий сценарий.

  • В Microsoft SQL Server 2017, 2016 и 2014 используется оперативная обработка транзакций в памяти (OLTP).
  • Запрос выполняется в оптимизированной для памяти таблице, содержащей большой индекс.

В этом сценарии, если вы используете большой индекс во время выполнения запроса, использование ЦП может резко возрасти до 100 процентов очень быстро. Если имеется несколько логических процессоров, использование только одним из них может быстро возрасти до 100 процентов.

Причина

Эта проблема возникает из-за того, что сборка мусора в OLTP в памяти может занять много времени, если для выполнения запроса используется большой индекс.

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Накопительный пакет обновления 4 для SQL Server 2017

Накопительный пакет обновления 7 для SQL Server 2016 с пакетом обновления 1 (SP1)

Накопительный пакет обновления 2 для SQL Server 2014 SP3

Примечание После установки этого обновления необходимо включить флаг трассировки (TF) 9945, чтобы устранить эту проблему. Сведения о включении TF 9945 см. в разделе Флаги трассировки (Transact-SQL) на веб-сайте Microsoft Developer Network (MSDN).

Сведения о накопительных обновлениях для SQL Server:

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:

Последний накопительный пакет обновления для SQL Server 2017

Последний накопительный пакет обновления для SQL Server 2016

Последний накопительный пакет обновления для SQL Server 2014

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.