2010-07-08 20 views
8

Tengo una tabla con una columna IDENTIDAD como clave principal (una columna ID clásica).Índice compuesto agrupado en SQL Server

SQL Server crea automáticamente un índice agrupado para esa clave principal.

Mi pregunta es:

  • ¿Puedo tener una única índice compuesto CLUSTERED individual con más columnas?

En caso afirmativo, ¿cómo puedo soltar el índice agrupado predeterminado y recrear uno nuevo con estos atributos.

Gracias por su apoyo

Respuesta

14

Sí, sólo puede tener un único índice agrupado por tabla - Los datos se organizan físicamente por ese índice, por lo que no puede tener más de uno.

Sin embargo, no aconsejaría utilizar un índice agrupado compuesto. ¿Por qué? Debido a que el índice agrupado debe ser siempre:

  • lo más pequeño posible - INT con 4 bytes es perfecto
  • estable - nunca cambian, por lo que no tiene ondulación actualizaciones a través de todos sus índices
  • única - de lo contrario, SQL Server tendrá que "uniquify" artificial entradas con valores de 4 bytes
  • óptima sería la siguiente: cada vez mayor

INT identidad es perfecto como un índice agrupado - yo aconsejaría que lo guarde Tha t camino.

La columna de índice agrupado (o conjunto de columnas) también se agrega a cada entrada de todos y cada uno de los índices no agrupados en la misma tabla, por lo que si hace que su índice agrupado sea grande, 20, 50 bytes o más, empiece a desperdiciar mucho espacio, en el disco y en la memoria de su servidor, lo que generalmente degrada el rendimiento de su sistema.

Lea todo sobre los índices agrupados y lo que deben ser para ser buenos índices agrupados aquí:

+1

Gracias por su tiempo! – GibboK

Cuestiones relacionadas