Проблемы
Логика оценки количества элементов, известная как оценщик мощности (CE), была изменена в SQL Server 2014 (уровни совместимости 120) и SQL Server 2016 (уровни совместимости 130) для повышения качества планов запросов. Однако при компиляции сложного запроса, содержащего большое количество соединений с помощью оператора DISTINCT или GROUP BY, компиляция может занять больше времени, чем ожидалось.
Решение
Это обновление, устраняющее эту проблему, входит в пакет обновления 1 (SP1) для SQL Server 2016.Примечание. После установки этого обновления необходимо установить флаг трассировки 4199, чтобы включить исправление. Чтобы установить флаг трассировки 4199, ознакомьтесь с разделом Флаги трассировки (Transact-SQL) на сайте MSDN.
Каждая новая сборка для SQL Server 2016 содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущую сборку. Мы рекомендуем установить последнюю сборку для SQL server 2016.
Обходное решение
Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.
-
С помощью флага трассировки 9481 можно установить модель оценки кратности оптимизатора запросов в SQL Server 2012 или более ранней версии.
-
Измените уровень совместимости базы данных до SQL Server 2012 (110) или более ранней версии.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.