Применяется к
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2019 on Windows

Проблемы

Предположим, что в таблице используется ограничение внешнего ключа для каскадного удаления, а статистика по столбце внешнего ключа не охватывает весь диапазон значений ключей в таблице (например, поскольку статистика не обновлялась после изменения распределения данных в таблицу). В этом случае при попытке удалить строку, соответствующую значению ключа, не представленного на гистограмме статистики, и оптимизатор запросов использует оценку статистической емки по умолчанию, операция удаления происходит медленнее, чем ожидалось. Вы также можете заметить, что для поиска совпадающих строк в таблице, ссылаемой на таблицу, используется операция сканирования индекса.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Примечание. Это исправление включено только в том случае, если включена оптимизация исправлений (с помощью параметра конфигурации уровня базы данных, подсказки запроса или флага трассировки 4199).

О накопительных обновлениях для SQL Server:

Каждое новое накопительное SQL Server содержит все исправления для системы безопасности, которые были включены в предыдущее накопительное обновление. Ознакомьтесь с последними накопительными обновлениями для SQL Server:

Обходное решение

Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.

  • Использование устаревшей оценки индивидуальность. Дополнительные сведения см.в SQL Server.

  • Удалите каскадное удаление из определения внешнего ключа и выполните операцию удаления с помощью операции JOIN между родительской и родительской таблицами, чтобы выполнить эквивалент каскадного удаления.

  • Перед удалением данных обновите статистику родительской таблицы с помощью fullSCAN.

Ссылки

Узнайте о терминологии, используемой Майкрософт для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.