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