Проблема
Предположим, что вы выполняете сложный параллельный запрос, для которого требуется значительное число параллельных потоков, в Microsoft SQL Server 2012 или Microsoft SQL Server 2014, и рабочие потоки исчерпаны на соответствующем планировщике. В редких случаях запрос не выполняет выполнение в течение неопределенного времени из-за необнаруженной взаимоблокировки.
Примечание. Если у других планировщиков в SQL Server есть свободные рабочие роли, ядро СУБД сможет правильно обрабатывать другие запросы.
Причина
Когда происходит нехватка рабочих потоков, конкретное ожидание между рабочими потоками не рассматривается как потенциальный блокировщик. Поэтому монитор взаимоблокировки не обнаруживает состояние. В результате запрос не отвечает. Вероятность возникновения такого условия невелика и в основном зависит от формы плана запроса, степени параллелизма и доступности рабочих потоков.
Решение
Сведения о накопительном пакете обновления
Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server.
- Накопительный пакет обновления 1 для SQL Server 2014 с пакетом обновления 1 (SP1)
- Накопительный пакет обновления 7 для SQL Server 2014
- Накопительный пакет обновления 5 для SQL Server 2012 с пакетом обновления 2 (SP2)
Рекомендация. Установите последний накопительный пакет обновления для SQL Server
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Рекомендуется скачать и установить последние накопительные пакеты обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2014 с пакетом обновления 1 (SP1)
- Последний накопительный пакет обновления для SQL Server 2014
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 2 (SP2)
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».