KB4577976 – ÅTGÄRD: KOMPILERINGSBLOCKERING inträffar när många samtidiga lagrade procedurer körs i SQL Server 2017 och 2019

Gäller för
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

Symptom

Anta att du aktiverar automatisk frågejustering i SQL Server 2017 och 2019. När du kör många samtidiga lagrade procedurer kan du stöta på blockeringsscenario för kompilering under följande förhållanden:

  1. Kör den lagrade proceduren.
  2. Använd frågedatalager (QDS) för att tvinga fram planen.
  3. Kör sp_recompile på den lagrade proceduren för att tvinga bort planen från procedurcachen.
  4. Kör den lagrade proceduren samtidigt i många separata sessioner.

Orsak

När du har tvingat fram en plan med hjälp av frågedatalager och tagit bort den från procedurcachen cachelagras inte längre planen och samtidig körning resulterar i kompileringsblockering.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Lösning

Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:

Om kumulativa uppdateringar för SQL Server:

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Referenser

Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.