Crear índices no agrupados

Se pueden crear varios índices no agrupados en una tabla o vista indizada. Normalmente, los índices no agrupados se crean para mejorar el rendimiento de las consultas usadas con frecuencia y que no cubre el índice agrupado.

Implementaciones habituales

Los índices no agrupados se implementan de las formas siguientes:

  • Restricciones PRIMARY KEY y UNIQUE
    Cuando se crea una restricción PRIMARY KEY, se crea automáticamente un índice agrupado único en las columnas si aún no existe un índice agrupado en la tabla o no se ha especificado un índice no agrupado. La columna de clave principal no puede permitir valores NULL.
    Cuando cree una restricción UNIQUE, se creará un índice no agrupado único para exigir una restricción UNIQUE de forma predeterminada. Si aún no existe ningún índice agrupado en la tabla, puede especificar un índice agrupado único. Para obtener más información, vea Restricciones PRIMARY KEY y Restricciones UNIQUE.
  • Índice independiente de una restricción
    De forma predeterminada, se crea un índice no agrupado si no hay ninguno agrupado especificado. El número máximo de índices no agrupados que se pueden crear por cada tabla es de 249. Esto incluye los índices creados por las restricciones PRIMARY KEY o UNIQUE, pero no los índices XML.
  • Índice no agrupado en una vista indizada
    Una vez creado un índice agrupado único en una vista, se pueden crear índices no agrupados. Para obtener más información, vea Crear vistas indizadas.

Índices con columnas incluidas

Al crear un índice no agrupado para abarcar una consulta, se pueden incluir columnas sin clave en la definición del índice para abarcar las columnas de la consulta que no se utilizan como columnas de búsqueda principales. Las mejoras en el rendimiento se consiguen porque el optimizador de consultas puede localizar todos los datos de columnas necesarios del índice sin tener acceso a la tabla ni al índice agrupado. Para obtener más información, vea Índice con columnas incluidas.

Requisitos de espacio en disco

Para obtener información acerca de los requisitos de espacio en disco para los índices no agrupados, vea Determinar requisitos de espacio en disco del índice.

Consideraciones de rendimiento

Aunque es importante que el índice incluya todas las columnas utilizadas por la consulta, evite agregar columnas innecesarias. El hecho de agregar demasiadas columnas de índice, con o sin clave, puede tener las siguientes consecuencias en el rendimiento:

  • Cabrán menos filas de índice en una página, por lo que aumentará la E/S de disco y se reducirá la eficacia de la caché.
  • Se necesitará más espacio en disco para almacenar el índice.
  • Puede que el mantenimiento del índice haga aumentar el tiempo necesario para realizar operaciones de modificación, inserción, actualización o eliminación en la tabla subyacente o la vista indizada.

Debe determinar si la mejora del rendimiento de las consultas compensa el efecto en el rendimiento durante la modificación de datos y en los requisitos de espacio en disco adicionales. Para obtener más información acerca de la evaluación del rendimiento de las consultas, vea Optimizar consultas.

Para crear una restricción PRIMARY KEY o UNIQUE al crear una tabla

CREATE TABLE (Transact-SQL)

Para crear una restricción PRIMARY KEY o UNIQUE en una tabla existente

ALTER TABLE (Transact-SQL)

Para crear un índice

CREATE INDEX (Transact-SQL)

Vea también

Conceptos

Crear índices (motor de base de datos)
Directrices para diseñar índices no agrupados

Ayuda e información

Obtener ayuda sobre SQL Server 2005