OK, necesito que esto se deletree una vez más. He leído los artículos en línea y aún no he encontrado una respuesta definitiva.¿El índice no agrupado de SQL Server 2008 contiene los campos de índice agrupados?
En SQL Server 2008, tengo una tabla "core" con aproximadamente 50k registros y mucha actividad de lectura que se usa de la misma manera en todas las consultas. Esta información se actualiza una vez al mes y se lee cientos de veces por segundo.
Los datos tienen un índice agrupado en los campos, ya que se accede con frecuencia. Digamos que el índice agrupado es:
índice agrupado
Field1 int
Field2 int
Field3 int
Field4 int
Field5 int
Ahora, no es mucho más datos que los que, por lo que tendría sentido que sólo hay que poner el extra par de columnas en "Incluido Columnas ", pero SQL Server no permite incluir columnas en el índice agrupado.
Por lo tanto, tenemos un segundo índice con esencialmente los mismos campos que el Índice agrupado, con las otras columnas como "Columnas incluidas". Sin embargo, por lo que he leído, ¿creo que esto puede ser redundante?
CUBIERTA ÍNDICE (no agrupado)
Field1 int
Field2 int
Field3 int
Field4 int
Field5 int
columnas incluidas
Field6 varchar(96)
Field7 varchar(96)
¿El índice no agrupado ya se disponen de columnas de índice agrupado definido en ella?
En caso afirmativo, ¿cómo podría crearse este segundo índice sin columnas (además de lo que ya figura en el índice agrupado)? En otras palabras, me gustaría decir: "Este índice es exactamente el mismo que el índice agrupado ... con un par de columnas incluidas".
O, ¿sería mejor simplemente poner TODAS las columnas en el índice agrupado (incluidas las dos que no identifican el registro)? Las columnas varchar se actualizan con más frecuencia (algunas veces al día en lugar de una vez al mes), por lo que me hubiera gustado mantenerlas fuera del índice agrupado, pero creo que son lo suficientemente profundas como para que no afecten el árbol de índice lo suficiente como para causar un reequilibrio cuando se produce un cambio.
Entonces, ¿hay una forma eficiente de configurar estos índices para que todas las columnas de esta tabla estén disponibles a través del índice sin volver a la tabla?
Aunque todas las respuestas aquí son bastante similares, creo que destilaron la pregunta hasta sus elementos esenciales y nos dieron la información "procesable" que necesitábamos sin demasiada teoría RDBMS. ¡Gracias! – Flipster