Проблемы
Предполагается, что вы выполняете запрос, включающий соединение или агрегирование. для столбца, который охватывает один столбец и несколько столбцов Статистика (в которой этот столбец не является ведущим). Если вы используете Оценщик количества элементов по умолчанию (CE) в SQL Server 2016 может недооценивать число из отдельных строк. Это приводит к появлению подходящего плана выполнения запроса (например, "низкая оценка" может привести к недостаточному предоставлению памяти для оператора хеширования, который приводит к сбросу запроса в базу данных tempdb).
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Решение
Эта проблема устранена в следующем накопительном обновлении SQL Server:
Примечание. Для того чтобы это исправление вступило в силу, необходимо включить исправления оптимизатора запросов с помощью флага трассировки (TF) 4199 или соответствующей конфигурации базы данных или подсказок запроса.
Сведения о накопительных обновлениях для SQL Server.
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Обходное решение
Эту проблему можно устранить, добавив следующую подсказку запроса:
ПРЕДНАЗНАЧЕН ПОДСКАЗКА ("FORCE_LEGACY_CARDINALITY_ESTIMATION")
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.