Příznaky
Když naplníte proměnnou tabulky počtem řádků a pak se k ní připojíte s jinými tabulkami, může Optimalizátor dotazů zvolit neefektivní plán dotazů, což může vést k pomalému výkonu dotazů.
Řešení
Po použití této opravy hotfix můžete zapnout funkci trace Flags 2453 a povolit tak, aby při změně dostatečného počtu řádků byla proměnná tabulky aktivována. To může v optimalizaci dotazu umožnit výběr efektivnějšího plánu. Tento problém byl poprvé opraven následující kumulativní aktualizací nebo aktualizace Service Pack pro SQL Server.
Kumulativní aktualizace 3 pro SQL Server 2014 /en-us/help/2984923
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:
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. Pokud chcete najít další informace 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í
Další informace
Když v dávce nebo proceduře použijete proměnnou tabulky, dotaz se zkompiluje a optimalizuje pro počáteční prázdný stav proměnné tabulky. Pokud je proměnná tabulky naplněna řadou řádků za běhu, nemusí být předkompilovaný plán dotazů nadále optimální. Dotaz se například může spojit s proměnnou tabulky s vnořenou smyčkou, protože je obvykle efektivnější pro malý počet řádků. Tento plán dotazu může být neefektivní, pokud má proměnná tabulky milióny řádků. V takovém případě může být vhodnější použít zatřiďovací spojení. Pokud chcete získat nový plán dotazů, je potřeba ho znovu zkompilovat. Na rozdíl od jiných uživatelských nebo dočasných tabulek se ale změna počtu řádků v proměnné tabulky neaktivuje. Tento postup se obvykle používá k nastavení možnosti (RECOMPILE), která má vlastní režijní náklady. Příznak Trace 2453 umožňuje překompilujte dotaz bez možnosti (znova zkompilovat). Tento příznak trasování se liší od možnosti (RECOMPILE) ve dvou hlavních aspektech. (1) používá stejnou prahovou hodnotu počtu řádků jako jiné tabulky. Dotaz nemusí být kompilován pro každou možnost, která se podobá VOLBě (RECOMPILE). Aktivuje se znovu pouze v případě, že změna počtu řádků přesáhne předdefinovaný práh. (2) možnost (RECOMPILE) přinutí dotaz prohlížet parametry a optimalizovat dotaz. Tento příznak trasování nenutí vynutit prohlížení parametrů.Poznámka: tento příznak trasování musí být při běhu zapnutý. Tento příznak trasování nelze použít u QUERYTRACEON. Tento příznak trasování je třeba používat opatrně, protože může zvýšit počet překompilovaných dotazů, což by mohlo mít za výsledek lepší optimalizaci dotazů.
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.