Problembeschreibung
Wenn Sie eine Ansicht in Microsoft SQL Server 2014 oder 2016 Abfragen, kann es viel länger dauern, bis der Vorgang abgeschlossen ist, wenn Sie Sie mit der Ausführung in SQL Server 2008 R2 vergleichen.
Wenn Sie eine Abfrage ausführen, die Union all und ein Zeilen Ziel (wie Top n-Klausel, fast n oder EXISTS-Prädikat) verwendet, stellen Sie möglicherweise fest, dass die Abfrage in SQL Server 2014 oder höheren Versionen langsamer ausgeführt wird, wenn Sie Sie mit SQL Server 2008 R2 vergleichen.
Ursache
In SQL Server 2008 R2 ändert der Abfrageoptimierer die Reihenfolge von unterschiedlichen Teilen unter Union all, wenn ein Zeilen Ziel vorhanden ist, sodass der günstigste Teil an erster Stelle steht. Dadurch kann die Ausführung der Abfrage vorzeitig beendet werden, wenn die niedrigeren Bauteile die erforderliche Anzahl von Zeilen produzieren, ohne weiterhin kostspieligere Teile ausführen zu müssen. Eine solche Neuanordnung tritt in späteren Versionen von SQL Server nicht auf.
Fehlerbehebung
Dieses Problem wurde im folgenden kumulativen Update für SQL Server behoben:
Kumulatives Update 7 für SQL Server 2016 RTM
Kumulatives Update 4 für SQL Server 2016 SP1
Kumulatives Update 6 für SQL Server 2014 SP2
Hinweis Der Abfrageoptimierer muss für dieses Problem aktiviert sein.
Weitere Informationen zum Abfrageoptimierer und zu Ablaufverfolgungsflags finden Sie unter den folgenden Links:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschreibt.