KB4023419 – OPRAVA: Dotaz se sloučením ALL a cílem řádku může běžet v SQL Server 2014 nebo novějších verzích pomaleji ve srovnání s SQL Server 2008 R2

Platí pro
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

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.