2008-09-03 11 views
8

En SQL Server 2005, el analizador de consultas me ha dicho muchas veces que cree un índice no agrupado en una columna de ID principal de una tabla que ya tiene un índice agrupado. Después de seguir esta recomendación, el plan de ejecución de consultas informa que la consulta debe ser más rápida.¿Índice no agrupado en una columna de índice agrupado mejora el rendimiento?

¿Por qué un índice no agrupado en la misma columna (con el mismo orden de clasificación) sería más rápido que un índice agrupado?

Respuesta

-1

Un índice agrupado generalmente será más rápido, pero solo puede tener 1 índice agrupado. Entonces, si la tabla ya tiene un índice agrupado en una columna diferente, entonces un índice no agrupado es lo mejor que puede hacer.

2

Supongo que sería más rápido en los casos en que no necesite los datos completos de la fila, por ejemplo, si solo está comprobando si existe una fila con una ID determinada. Entonces, un índice agrupado sería bastante grande, mientras que un índice pequeño de "una columna" sería mucho más delgado.

16

Un índice agrupado tiene todos los datos de la tabla, mientras que un índice no agrupado solo tiene la columna + la ubicación del índice agrupado o la fila si está en un montón (una tabla sin índice agrupado). Entonces, si realiza un recuento (columna) y esa columna se indexa con un servidor SQL de índice no agrupado, solo tiene que escanear el índice no agrupado, que es más rápido que el índice agrupado porque más cabrá en las páginas 8K

Cuestiones relacionadas