Recientemente actualizamos nuestro servidor de SQL Server 2008R2 a SQL Server 2014. Tenemos una consulta que funcionó bien en 2008R2 pero ahora en 2014 funciona increíblemente mucho más lento y tiene un mal plan de ejecución.
He hecho varias pruebas ...
- Cambie el DB 2014 al modo de compatibilidad 2008/2012.
- Probar la consulta usando Paginación.
Ambos resultados dieron como resultado que la consulta se ejecutara igual que rápido y que SQL Server 2008R2.
¿Por qué el plan es tan malo y la consulta se ejecuta tanto tiempo en SQL Server 2014?
Esta imagen muestra 2 consultas, una con número de rown de la forma en que se ejecutó en 2008R2, y luego la segunda es la corrección con paginación. Ambos se ejecutaron en 2014, ambos muy diferentes, pero en 2008 vemos el mismo rendimiento que si usáramos la paginación en 2014.