Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Puede crear índices no agrupados en SQL Server 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 agrupados 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 agrupado o el índice no agrupado 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 una vista indizada.
Antes de empezar
Implementaciones típicas
Los índices no clúster se implementan de las formas siguientes:
UNIQUERestricciones**Al crear una
UNIQUErestricción, se crea un índice no clúster único para aplicar unaUNIQUErestricción de forma predeterminada. Puede especificar un índice clúster único si aún no existe un índice agrupado en la tabla. Para obtener más información, consulte Restricciones Unique y check constraints.Índice independiente de una restricción
De forma predeterminada, se crea un índice no clúster si no se especifica clustered. El número máximo de índices no clúster que se pueden crear por tabla es 999. Esto incluye los índices creados por
PRIMARY KEYrestricciones oUNIQUE, pero no incluye í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, consulta Crear vistas indexadas.
Security
Permissions
Requiere ALTER permiso en la tabla o 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 .
Uso de SQL Server Management Studio
Creación de un índice no agrupado mediante el Diseñador de tablas
En el Explorador de objetos, expanda la base de datos que contiene la tabla en la que desea crear un índice no clúster.
Expanda la carpeta Tablas .
Haga clic con el botón derecho en la tabla en la que quiere crear un índice no agrupado y seleccione Diseño.
Haga clic con el botón derecho en la columna en la que quiere crear el índice no agrupado y seleccione Índices o claves.
En el cuadro de diálogo Índices o claves, seleccione Agregar.
Seleccione el nuevo índice en el cuadro de texto Clave principal o única, o índice seleccionado .
En la cuadrícula, seleccione Crear como CLUSTERED y elija No en la lista desplegable que aparece a la derecha de la propiedad.
Selecciona Cerrar.
En el menú Archivo, seleccione Guardarnombre_de_tabla.
Creación de un índice no agrupado mediante el Explorador de objetos
En el Explorador de objetos, expanda la base de datos que contiene la tabla en la que desea crear un índice no clúster.
Expanda la carpeta Tablas .
Expanda la tabla en la que desea crear un índice no clúster.
Haga clic con el botón derecho en la carpeta Índices, seleccione Nuevo índice y, luego, Índice no agrupado....
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 .
En Columnas de clave de índice, seleccione Agregar....
En el cuadro de diálogo Seleccionar columnas denombre_de_tabla, active la o las casillas de la o las columnas de tabla que se van a agregar al índice no agrupado.
Selecciona Aceptar.
En el cuadro de diálogo Nuevo índice, haz clic en Aceptar.
Uso de Transact-SQL
Creación de un índice no agrupado en una tabla mediante Transact-SQL
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos con
AdventureWorks2025instalado. Puede descargarAdventureWorks2025desde bases de datos de ejemplo.En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar.
USE AdventureWorks2022; 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