Проблемы
Рассмотрим следующий сценарий.
-
Вы используете конфигурацию оценки количества элементов (CE), соответствующую уровню совместимости базы данных 120 или более поздней версии для вашей системы Microsoft SQL Server 2016 и 2017.
-
Вы запускаете запрос, содержащий предикат поиска.
-
Запрос выполняет поиск значений, которые не меньше минимального значения RANGE_HI_KEY , хранящегося в объекте Statistics, или равны ему. Кроме того, запрос выполняет поиск значений, которые больше максимального значения 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.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.