KB4577933 - OPRAVA: Kaskádové odstranění klíčových hodnot mimo hranice histogramu úvodní tabulky způsobí v SQL Server 2017 a 2019 skenování indexu

Platí pro
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

Příznaky

Předpokládejme, že máte tabulku používající omezení cizího klíče nastavené na kaskádové odstranění a statistika ve sloupci cizího klíče nepokrývá celou oblast klíčových hodnot v tabulce (například proto, že se po změně distribuce dat v tabulce neaktualizovala statistika). Když se v tomto scénáři pokusíte odstranit řádek odpovídající hodnotě klíče, která není zastoupena v histogramu statistiky, a optimalizátor dotazů používá výchozí odhad mohutnosti, bude operace odstranění pomalejší, než se očekávalo. Můžete si také všimnout, že operace prohledávání indexu se používá k nalezení odpovídajících řádků v odkazující tabulce.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Řešení

Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:

Poznámka: Tato oprava je povolená jenom v případě, že zapnete opravy hotfix pro optimalizaci (buď prostřednictvím možnosti konfigurace s oborem databáze, nápovědy dotazu nebo příznaku trasování 4199).

Informace o kumulativních aktualizacích pro SQL Server:

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:

Alternativní řešení

Chcete-li tento problém vyřešit, použijte jednu z následujících metod:

  • Použijte starší odhad mohutnosti. Další informace najdete v tématu Odhad mohutnosti (SQL Server).
  • Odeberte kaskádové odstranění z definice cizího klíče a proveďte operaci odstranění pomocí příkazu JOIN mezi nadřazenými a podřízenými tabulkami, abyste dosáhli ekvivalentu kaskádového odstranění.
  • Před odstraněním dat aktualizujte statistiku nadřazené tabulky pomocí funkce FULLSCAN.

Reference

Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.