Проблема
Рассмотрим следующий сценарий.
- Вы выполняете запрос в Microsoft SQL Server 2016 и 2017.
- Полученный план запроса содержит ветвь пакетного режима и ветвь режима строки, участвующие в JOIN.
- В ветви строкового режима есть параллельные и последовательные операторы.
В этом случае может возникнуть состояние взаимоблокировки.
Примечание. Эта проблема не возникает, если для запроса задана максимальная степень параллелизма (MAXDOP) равная 1 .
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
Накопительный пакет обновления 4 для SQL Server 2017
Накопительный пакет обновления 7 для SQL Server 2016 с пакетом обновления 1 (SP1)
Примечание Для решения этой проблемы необходимо включить флаг трассировки (TF) 4199 оптимизатора запросов.
Дополнительные сведения об исправлениях оптимизатора запросов и флагах трассировки см. в следующих статьях:
Исправление оптимизатора запросов SQL Server Модель обслуживания TF 4199
Консольные команды DBCC и флаги трассировки
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
Последний накопительный пакет обновления для SQL Server 2017
Последний накопительный пакет обновления для SQL Server 2016
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.