Проблема
Рассмотрим следующий сценарий.
- Вы используете конфигурацию оценки кратности (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, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии , используемой корпорацией Майкрософт для описания обновлений программного обеспечения.