Проблемы
Рассмотрим следующий сценарий.
-
У вас есть запрос, использующий предикат, не поддерживающий равенство, в столбце уникального идентификатора GUID в SQL Server 2014 или 2016.
-
Статистика будет обновлена с использованием выборки по умолчанию. Новые строки будут вставлены в таблицу после последнего обновления статистики.
-
SQL Server использует новую оценку количества элементов, в которой для режима совместимости базы данных установлено значение 120.
-
Значения GUID не равномерно распределены по таблице.
В этом сценарии при выполнении запроса может снизиться производительность из-за неправильной оценки количества строк для предиката в плане запроса.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server:
Накопительное обновление 6 для SQL server 2014 с пакетом обновления 1 (SP1), накопительное обновление 1 для SQL Server 2016Установив этот накопительный пакет обновления, необходимо включить флаг трассировки 4199. Для этого вы можете добавить параметр запуска -T4199 . Кроме того, вы можете использовать инструкцию DBCC TRACEON (4199) для определенного сеанса.
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Последнее накопительное обновление для SQL Server 2014Последнее накопительное обновление для SQL Server 2016
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.