Wir haben kürzlich unseren Server von SQL Server 2008R2 auf SQL Server 2014 aktualisiert. Wir haben eine Abfrage, die in 2008R2 einwandfrei lief, jetzt aber 2014 unglaublich viel langsamer läuft und einen schlechten Ausführungsplan hat.
Ich habe mehrere Tests gemacht ...
- Schalten Sie die Datenbank 2014 wieder in den Kompatibilitätsmodus 2008/2012.
- Testen Sie die Abfrage mit Paginierung.
Beides führte dazu, dass die Abfrage genauso ausgeführt wurde wie SQL Server 2008R2.
Warum ist der Plan so schlecht und die Abfrage wird in SQL Server 2014 so lange ausgeführt?
Dieses Bild zeigt zwei Abfragen, eine mit Rownumber, wie sie 2008R2 ausgeführt wurde, und die zweite ist die Korrektur mit Paginierung. Beide liefen 2014, beide sehr unterschiedlich, aber 2008 sehen wir die gleiche Leistung, als ob wir 2014 die Paginierung verwendet hätten.