sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué mi SQL Server ORDER BY es lento a pesar de que la columna ordenada está indexada?

Si su consulta no contiene un pedido para entonces, devolverá los datos en el orden en que se encontraron. No hay garantía de que los datos se devolverán en el mismo orden cuando vuelva a ejecutar la consulta.

Cuando incluye una cláusula order by, la dabatase tiene que crear una lista de las filas en el orden correcto y luego devolver los datos en ese orden. Esto puede requerir mucho procesamiento adicional, lo que se traduce en tiempo adicional.

Probablemente lleve más tiempo ordenar una gran cantidad de columnas, que podría estar devolviendo su consulta. En algún momento, se quedará sin espacio en el búfer y la base de datos tendrá que comenzar a intercambiarse y el rendimiento irá cuesta abajo.

Intente devolver menos columnas (especifique las columnas que necesita en lugar de Seleccionar *) y vea si la consulta se ejecuta más rápido.