KB3192154 — неоптимальный выбор плана запроса приводит к снижению производительности при поиске значений за пределами диапазона, представленного в статистике, в SQL Server 2016 и 2017

Применяется к
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 on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1

Проблема

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

  • Вы используете конфигурацию оценки кратности (CE), соответствующую уровню совместимости базы данных 120 или более позднему для системы Microsoft SQL Server 2016 и 2017.
  • Вы запускаете запрос, содержащий предикат поиска.
  • Запрос ищет значения, которые меньше или равны любому числу, которое меньше минимального значения RANGE_HI_KEY, хранящегося в объекте статистики. Или же запрос ищет значения, превышающие максимальное значение RANGE_HI_KEY для той же статистики.

В этом случае оптимизатор запросов переоценивает количество строк. Это могло привести к неоптимальному выбору плана запросов и снижению производительности.

Решение

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

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

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

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

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

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

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

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

Состояние

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

Ссылки

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