Shrnutí
Přidejte nový atribut EstimateRowsWithoutRowGoal Query plán executions do systému SQL Server 2017 kumulativní aktualizace 3 (CU3) a Microsoft SQL Server 2016 Service Pack 2 (SP2).
Když Optimalizátor dotazů odhadne náklady plánu provádění dotazů, obvykle se předpokládá, že musí být zpracovány všechny opravňující řádky ze všech zdrojů. Některé dotazy však vyvolají Optimalizátor dotazů k hledání plánu, který bude rychlejší. K tomu může dojít, pokud dotaz používá klauzuli Top , Fast number_rows Query, klauzuli in nebo EXISTS nebo SET ROWCOUNT {Number | @number_var} . V tomto případě Optimalizátor při odhadu plánu dotazů používá cíl řádku. Pokud je použit plán cílů řádku, je odhadovaný počet řádků v plánu provádění dotazu zmenšen. Důvodem je skutečnost, že plán předpokládá, že bude potřeba zpracovat menší počet řádků, aby se dosáhlo cíle řádku.
Poznámka Odhad provedený pomocí cíle řádku je přibližný. Pokud je aktuální distribuce dat nestejnoměrná, může být menší než skutečný počet řádků, které se mají zpracovat. Proto by mohl vytvořit neefektivní plán dotazů. Jako alternativní řešení pro tento problém můžete použít možnost použít Tip (' DISABLE_OPTIMIZER_ROWGOAL ') nebo příznak trace (trasovat) 4138.
Další informace najdete v článku aktualizace přináší argument Tip pro dotaz na radu v SQL serveru 2016. V složitějších dotazech ale může být obtížné je identifikovat, ať už se uplatní cíl řádku a jaký je vliv na plán.
Pomocí atributu EstimateRowsWithoutRowGoal můžete porovnat výsledky se zobrazením atributu EstimateRows a zjistit, kolik cílů řádků ovlivňuje odhady Optimalizátoru dotazu.
Poznámka Pokud se cíl řádku neaplikuje na konkrétní operátor plánu dotazu, tento atribut se nezahrnuje.
Další informace
Tato aktualizace je součástí následující kumulativní aktualizace 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:
Informace o aktualizaci Service Pack pro SQL Server
Tato aktualizace se zavádí v následujících aktualizacích Service Pack pro SQL Server:
Aktualizace Service Pack jsou kumulativní. Každá nová aktualizace Service Pack obsahuje všechny opravy zahrnuté v předchozích aktualizacích Service Pack a všechny nové opravy. Naším doporučením je použití nejnovější aktualizace Service Pack a nejnovější kumulativní aktualizace pro danou aktualizaci Service Pack. Před instalací nejnovější aktualizace Service Pack není nutné nainstalovat předchozí aktualizaci Service Pack. K vyhledání dalších informací o nejnovější aktualizaci Service Pack a nejnovější kumulativní aktualizaci použijte tabulku 1 v následujícím článku.
Jak zjistit verzi, edici a úroveň aktualizace SQL serveru a jeho součástí
Odkazy
Informace o terminologiipoužívané společností Microsoft k popisu aktualizací softwaru.