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.

Factor de relleno

FILLFACTOR

Establece el porcentaje de espacio libre en el nivel hoja de cada página de índice durante la creación del índice.

Factor de relleno

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.

ms188677.note(es-es,SQL.90).gifNota:

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.

CREATE INDEX

STATISTICS_NORECOMPUTE

Especifica si las estadísticas de índices obsoletas deberían calcularse de nuevo automáticamente.

Estadísticas de índice

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.

ms188677.note(es-es,SQL.90).gifNota:

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.

CREATE INDEX

ALLOW_PAGE_LOCKS

Determina si se utilizan bloqueos de página al obtener acceso a los datos de índice.

CREATE INDEX

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.

ms188677.note(es-es,SQL.90).gifNota:

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

ALTER INDEX (Transact-SQL)

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

Modificar índices

Otros recursos

sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005