Di recente abbiamo aggiornato il nostro server da SQL Server 2008R2 a SQL Server 2014. Abbiamo una query che ha funzionato bene nel 2008R2 ma ora nel 2014 funziona incredibilmente molto più lentamente e ha un piano di esecuzione errato.
Ho fatto diversi test ...
- Riporta il DB 2014 alla modalità di compatibilità 2008/2012.
- Testare la query utilizzando Impaginazione.
Entrambi hanno comportato l'esecuzione della stessa query e la velocità di SQL Server 2008R2.
Perché il piano è così male e la query viene eseguita così a lungo in SQL Server 2014?
Questa immagine mostra 2 query, una che utilizza il rownumber nel modo in cui è stata eseguita in 2008R2 e quindi la seconda è la correzione con l'impaginazione. Entrambi hanno funzionato nel 2014, entrambi molto diversi, ma nel 2008 abbiamo visto le stesse prestazioni come se avessimo usato l'impaginazione nel 2014.