Příznaky
Předpokládejme, že spustíte dotaz zahrnující spojení nebo agregaci. ve sloupci, který je překrytý jedním sloupcem a více sloupci statistické údaje (ve kterých tento sloupec není provedený sloupec) Pokud používáte výchozí mohutnost odhad (CE) v systému SQL Server 2016 může underestimate číslo DISTINCT řádků. To vede k podprocesu s dílčím optimálním plánem provádění dotazů (například: nízké odhady může způsobit, že pro operátor algoritmu hash nestačí udělit dostatek paměti
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Řešení
Tento problém je opravený v následující kumulativní aktualizaci SQL serveru:
Poznámka Aby tato oprava vstoupila v platnost, je třeba povolit opravy hotfix pro optimalizaci dotazů pomocí příznaku trasování (TF) 4199 nebo odpovídající konfigurace s oborem databáze nebo možnosti dotazu s rozsahem.
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 SQL serveru:
Alternativní řešení
Tento problém můžete vyřešit přidáním následujícího dotazu:
POUŽITÍ HINT (' FORCE_LEGACY_CARDINALITY_ESTIMATION ')
Odkazy
Informace o terminologii používanéspolečností Microsoft k popisu aktualizací softwaru.