Establecer opciones de índice
Al diseñar, crear o modificar un índice debe tener en cuenta varias opciones de índice. Estas opciones se pueden especificar cuando crea un índice por primera vez o cuando vuelve a generar un índice. Además, algunas opciones de índice también se pueden establecer en cualquier momento mediante la cláusula SET de la instrucción ALTER INDEX.
Opción de índice
Descripción
Valor almacenado en metadatos
Tema relacionado
PAD_INDEX
Establece el porcentaje de espacio libre en las páginas de nivel intermedio durante la creación del índice.
Sí
FILLFACTOR
Establece el porcentaje de espacio libre en el nivel hoja de cada página de índice durante la creación del índice.
Sí
SORT_IN_TEMPDB
Determina la ubicación en la que se almacenan los resultados de ordenación intermedia generados durante la creación del índice.
Cuando está establecido en ON, los resultados de ordenación se almacenan en tempdb. Cuando está establecido en OFF, los resultados de ordenación se almacenan en el grupo de archivos o el esquema de particiones en el que se almacena el índice resultante.
Nota:
Si no se necesita una operación de ordenación, o si la ordenación se puede realizar en memoria, SORT_IN_TEMPDB se omite.
No
tempdb y la creación de índices
IGNORE_DUP_KEY
Especifica la respuesta de error a los valores de clave duplicados en una transacción INSERT de varias filas en un índice único agrupado o no agrupado.
Sí
STATISTICS_NORECOMPUTE
Especifica si las estadísticas de índices obsoletas deberían calcularse de nuevo automáticamente.
Sí
DROP_EXISTING
Indica que el índice existente debería eliminarse y crearse de nuevo.
No
Reorganizar y volver a genera índices
ONLINE
Determina si se permite el acceso simultáneo de usuarios a la tabla subyacente o a los datos del índice agrupado y cualquier índice no agrupado asociado durante las operaciones de índice.
Nota:
Las operaciones de índice en línea sólo están disponibles en Microsoft SQL Server 2005 Enterprise Edition.
No
Realizar operaciones de índice en línea.
ALLOW_ROW_LOCKS
Determina si se utilizan bloqueos de fila al obtener acceso a los datos de índice.
Sí
ALLOW_PAGE_LOCKS
Determina si se utilizan bloqueos de página al obtener acceso a los datos de índice.
Sí
MAXDOP
Establece el número máximo de procesadores que el procesador de consultas puede utilizar para ejecutar una sola instrucción de índice. Pueden utilizarse menos procesadores dependiendo de la carga de trabajo actual del sistema.
Nota:
Las operaciones de índice en paralelo sólo están disponibles en SQL Server 2005 Enterprise Edition.
No
Configurar operaciones de índice en paralelo
Para establecer opciones en un índice
Establecer opciones sin volver a generar
Mediante la cláusula SET en la instrucción ALTER INDEX, puede establecer las siguientes opciones del índice sin volver a generarlo:
- ALLOW_PAGE_LOCKS
- ALLOW_ROW_LOCKS
- IGNORE_DUP_KEY
- STATISTICS_NORECOMPUTE
Estas opciones se aplican inmediatamente al índice. Otras opciones de índice, como FILLFACTOR y ONLINE, sólo pueden especificarse cuando se crea o vuelve a generar un índice.
Ver la configuración de opciones de índice
No todos los valores de las opciones de índice se almacenan en metadatos. Los valores que se almacenan en metadatos pueden verse en las vistas de catálogo correspondientes. Para examinar la configuración actual de las opciones en los índices existentes, utilice la vista de catálogo sys.indexes. Para examinar el valor actual de STATISTICS_NORECOMPUTE, utilice la vista de catálogo sys.stats. Para obtener más información, vea Ver información de índice.
Ejemplos
El siguiente ejemplo establece las opciones ALLOW_ROW_LOCKS
y IGNORE_DUP_KEY
para el índice AK_Product_ProductNumber
en la tabla Production.Product
.
USE AdventureWorks;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber
ON Production.Product
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
Vea también
Conceptos
Otros recursos
sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)