Проблема
Предположим, что автоматическая настройка запросов включена в 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 г.
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.