Příznaky
Když se dotazujete na zobrazení v Microsoft SQL Server 2014 nebo 2016, může jeho dokončení trvat mnohem déle, pokud ho porovnáte se spuštěním v systému SQL Server 2008 R2.
Když spustíte dotaz, který používá příkaz UNION ALL a cílový řádek (jako je klauzule TOP N, FAST N nebo predikát EXISTS), můžete si všimnout, že dotaz běží v systému SQL Server 2014 nebo novějších verzích pomaleji, pokud jej porovnáte se systémem SQL Server 2008 R2.
Příčina
V systému SQL Server 2008 R2 změní optimalizátor dotazů pořadí různých částí ve sloučení všech položek, pokud existuje cíl řádku, takže nejlevnější část je první. To umožní dotazu dokončit provádění dříve, pokud levnější části produkují požadovaný počet řádků, aniž by bylo nutné pokračovat ve spouštění dražších částí. V novějších verzích systému SQL Server k takovému novému uspořádání již nedochází.
Řešení
Tento problém je opravený v následující kumulativní aktualizaci pro SQL Server:
Kumulativní aktualizace 7 pro SQL Server 2016 RTM
Kumulativní aktualizace 4 pro SQL Server 2016 SP1
Kumulativní aktualizace 6 pro SQL Server 2014 SP2
Poznámka Pro tento problém musí být povolený Optimalizátor dotazů.
Další informace o příznacích optimalizátoru dotazů a trasování získáte po kliknutí na následující odkazy:
Model údržby TF 4199 pro optimalizátor dotazů pro SQL Server Query Optimizer
Příkazy konzoly DBCC a příznaky sledování
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:
Nejnovější kumulativní aktualizace pro SQL Server 2016
Nejnovější kumulativní aktualizace pro SQL Server 2014
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.