KB4577976 - ИСПРАВЛЕНО: блокировка COMPILE возникает при выполнении множества параллельных хранимых процедур в SQL Server 2017 и 2019

Применяется к
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 2017 и 2019. При выполнении множества параллельных хранимых процедур вы можете столкнуться со сценарием блокировки COMPILE в следующих условиях:

  1. Выполнение хранимой процедуры.
  2. Используйте хранилище данных запросов (QDS) для принудительного выполнения плана.
  3. Запустите sp_recompile хранимой процедуры, чтобы принудительно удалить план из кэша процедуры.
  4. Одновременный выполнение хранимой процедуры во многих отдельных сеансах.

Причина

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

Состояние

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

Решение

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

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

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

Ссылки

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