Crear índices no clúster

Puede crear índices no clúster en SQL Server 2012 mediante SQL Server Management Studio o Transact-SQL. Un índice no clúster es una estructura de índice independiente de los datos almacenados en una tabla que reordena una o más columnas seleccionadas. Con frecuencia, los índices no clúster pueden ayudarle a encontrar datos más rápidamente que cuando se busca en la tabla subyacente; las consultas a veces pueden responderse completamente con los datos del índice no clúster o el índice no clúster puede apuntar el Motor de base de datos hacia las filas de la tabla subyacente. Normalmente, los índices no clúster se crean para mejorar el rendimiento de las consultas usadas con frecuencia no cubiertas por el índice clúster o para buscar filas en una tabla sin un índice clúster (denominado montón). Se pueden crear varios índices no clúster en una tabla o vista indizada.

En este tema

  • Antes de empezar:

    Implementaciones típicas

    Seguridad

  • Para crear un índice no clúster, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de empezar

Implementaciones típicas

Los índices no clúster se implementan de las formas siguientes:

  • Restricciones UNIQUE

    Cuando cree una restricción UNIQUE, se creará un índice no clúster único para exigir una restricción UNIQUE de forma predeterminada. Puede especificarse un índice clúster único si todavía no existe un índice clúster en la tabla. Para obtener más información, vea Restricciones UNIQUE y restricciones CHECK.

  • Índice independiente de una restricción

    De forma predeterminada, se crea un índice no clúster si no hay ninguno clúster especificado. El número máximo de índices no clúster que se pueden crear por tabla es 999. Se incluyen los índices creados por restricciones PRIMARY KEY o UNIQUE, pero no los índices XML.

  • Índice no clúster en una vista indizada

    Una vez creado un índice clúster único en una vista, se pueden crear índices no clúster. Para obtener más información, vea Crear vistas indizadas.

Seguridad

Permisos

Requiere el permiso ALTER en la tabla o la vista. El usuario debe ser miembro del rol fijo de servidor sysadmin o de los roles fijos de base de datos db_ddladmin y db_owner.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar SQL Server Management Studio

Para crear un índice no clúster mediante el Diseñador de tablas

  1. En el Explorador de objetos, expanda la base de datos que contiene la tabla en la que desea crear un índice no clúster.

  2. Expanda la carpeta Tablas.

  3. Haga clic con el botón secundario en la tabla en la que desea crear un índice no clúster y seleccione Diseño.

  4. En el menú Diseñador de tablas, haga clic en Índices o claves.

  5. En el cuadro de diálogo Índices o claves, haga clic en Agregar.

  6. Seleccione el nuevo índice en el cuadro de texto Índice o clave Primary/Unique seleccionados.

  7. En la cuadrícula, seleccione Crear como CLUSTERED y elija No en la lista desplegable que aparece a la derecha de la propiedad.

  8. Haga clic en Cerrar.

  9. En el menú Archivo, haga clic en Guardar table_name.

Para crear un índice no clúster mediante el Explorador de objetos

  1. En el Explorador de objetos, expanda la base de datos que contiene la tabla en la que desea crear un índice no clúster.

  2. Expanda la carpeta Tablas.

  3. Expanda la tabla en la que desea crear un índice no clúster.

  4. Haga clic con el botón secundario en la carpeta Índices, apunte a Nuevo índice y seleccione Índice no clúster.

  5. En el cuadro de diálogo Nuevo índice, en la página General, escriba el nombre del nuevo índice en el cuadro Nombre de índice.

  6. Debajo de Columnas de clave de índice, haga clic en Agregar.

  7. En el cuadro de diálogo Seleccionar columnas de table_name, active la casilla o las casillas de la columna o columnas de tabla que se van a agregar al índice no clúster.

  8. Haga clic en Aceptar.

  9. En el cuadro de diálogo Nuevo índice, haga clic en Aceptar.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar Transact-SQL

Para crear un índice no clúster en una tabla

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra de Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.

    USE AdventureWorks2012;
    GO
    -- Find an existing index named IX_ProductVendor_VendorID and delete it if found. 
    IF EXISTS (SELECT name FROM sys.indexes
                WHERE name = N'IX_ProductVendor_VendorID') 
        DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor; 
    GO
    -- Create a nonclustered index called IX_ProductVendor_VendorID 
    -- on the Purchasing.ProductVendor table using the BusinessEntityID column. 
    CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID 
        ON Purchasing.ProductVendor (BusinessEntityID); 
    GO
    

Para obtener más información, vea CREATE INDEX (Transact-SQL).

Icono de flecha usado con el vínculo Volver al principio[Top]