Проблема
Предположим, что вы включили автоматическую настройку запросов в SQL Server 2017 и 2019. При выполнении множества параллельных хранимых процедур вы можете столкнуться со сценарием блокировки COMPILE в следующих условиях:
- Выполнение хранимой процедуры.
- Используйте хранилище данных запросов (QDS) для принудительного выполнения плана.
- Запустите sp_recompile хранимой процедуры, чтобы принудительно удалить план из кэша процедуры.
- Одновременный выполнение хранимой процедуры во многих отдельных сеансах.
Причина
После принудительного создания плана с помощью хранилища данных запроса и удаления его из кэша процедуры план больше не кэшируется, и параллельное выполнение приводит к блокировке компиляции.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
- Накопительный пакет обновления 9 для SQL Server 2019
- Накопительный пакет обновления 22 для SQL Server 2017
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2019
- Последний накопительный пакет обновления для SQL Server 2017
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.