sys.indexes (Transact-SQL)

Se aplica a: SQL Server (todas las versiones compatibles) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Contiene una fila por índice o montón de un objeto tabular, como una tabla, una vista o una función con valores de tabla.

Nombre de la columna Tipo de datos Descripción
object_id int Id. del objeto al que pertenece este índice.
name sysname Nombre del índice. name es único solo dentro del objeto .

NULL = Montón
id_de_índice int Id. del índice. index_id es único solo dentro del objeto .

0 = Montón

1 = Índice clúster

> 1 = Índice no agrupado
type tinyint Tipo de índice:

0 = Montón

1 = Almacén de filas agrupado (árbol B)

2 = Almacén de filas no agrupado (árbol B)

3 = XML

4 = Espacial

5 = Índice de almacén de columnas agrupado. Válido para : SQL Server 2014 (12.x) y versiones posteriores.

6 = Índice de almacén de columnas no agrupado. Válido para : SQL Server 2012 (11.x) y versiones posteriores.

7 = Índice hash no clúster. Válido para : SQL Server 2014 (12.x) y versiones posteriores.
type_desc nvarchar(60) Descripción del tipo de índice:

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

ALMACÉN DE COLUMNAS AGRUPADAS: se aplica a: SQL Server 2014 (12.x) y versiones posteriores.

NONCLUSTERED COLUMNSTORE: se aplica a: SQL Server 2012 (11.x) y versiones posteriores.

NONCLUSTERED HASH: los índices HASH NO CLÚSTER SOLO se admiten en tablas optimizadas para memoria. La sys.hash_indexes vista muestra los índices hash actuales y las propiedades hash. Para obtener más información, vea sys.hash_indexes (Transact-SQL). Válido para : SQL Server 2014 (12.x) y versiones posteriores.
is_unique bit 1 = El índice es exclusivo.

0 = El índice no es exclusivo.

Siempre es 0 para los índices clúster de almacén de columnas.
data_space_id int Id. del espacio de datos para este índice. El espacio de datos es un grupo de archivos o un esquema de partición.

0 = object_id es una función con valores de tabla o un índice en memoria.
ignore_dup_key bit 1 = IGNORE_DUP_KEY está ON.

0 = IGNORE_DUP_KEY está OFF.
is_primary_key bit 1 = El índice forma parte de una restricción PRIMARY KEY.

Siempre es 0 para los índices clúster de almacén de columnas.
is_unique_constraint bit 1 = El índice forma parte de una restricción UNIQUE.

Siempre es 0 para los índices clúster de almacén de columnas.
fill_factor tinyint > 0 = Porcentaje de FILLFACTOR utilizado al crear o volver a generar el índice.

0 = Valor predeterminado

Siempre es 0 para los índices clúster de almacén de columnas.
is_padded bit 1 = PADINDEX está ON.

0 = PADINDEX está OFF.

Siempre es 0 para los índices clúster de almacén de columnas.
is_disabled bit 1 = El índice está deshabilitado.

0 = El índice no está deshabilitado.
is_hypothetical bit 1 = El índice es hipotético y no se puede utilizar directamente como ruta de acceso a datos. Los índices hipotéticos contienen estadísticas de nivel de columna.

0 = El índice no es hipotético.
allow_row_locks bit 1 = El índice admite bloqueos de fila.

0 = El índice no admite bloqueos de fila.

Siempre es 0 para los índices clúster de almacén de columnas.
allow_page_locks bit 1 = El índice admite bloqueos de página.

0 = El índice no admite bloqueos de página.

Siempre es 0 para los índices clúster de almacén de columnas.
has_filter bit 1 = El índice tiene un filtro y solo contiene filas que cumplen con la definición del filtro.

0 = El índice no tiene un filtro.
filter_definition nvarchar(max) Expresión para el subconjunto de filas incluido en el índice filtrado.

NULL para el montón, el índice no filtrado o permisos insuficientes en la tabla.
compression_delay int > 0 = Retraso de compresión de índice de almacén de columnas especificado en minutos.

NULL = El retraso de compresión del grupo de filas del índice de almacén de columnas se administra automáticamente.
suppress_dup_key_messages bit 1 = El índice está configurado para suprimir los mensajes de clave duplicados durante una operación de recompilación de índices.

0 = El índice no está configurado para suprimir los mensajes de clave duplicados durante una operación de recompilación del índice.

Se aplica a: SQL Server (a partir de SQL Server 2017 (14.x)), Azure SQL Database y Azure SQL Managed Instance
auto_created bit 1 = El ajuste automático creó el índice.

0 = El usuario creó el índice.

Se aplica a: Azure SQL Database
optimize_for_sequential_key bit 1 = El índice tiene habilitada la optimización de inserción de última página.

0 = Valor predeterminado. El índice tiene deshabilitada la optimización de inserción de última página.

Se aplica a: SQL Server (a partir de SQL Server 2019 (15.x)), Azure SQL Database y Azure SQL Managed Instance

Permisos

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplos

En el ejemplo siguiente se devuelven todos los índices de la tabla Production.Product de la base de datos AdventureWorks2019.

SELECT i.name AS index_name  
    ,i.type_desc  
    ,is_unique  
    ,ds.type_desc AS filegroup_or_partition_scheme  
    ,ds.name AS filegroup_or_partition_scheme_name  
    ,ignore_dup_key  
    ,is_primary_key  
    ,is_unique_constraint  
    ,fill_factor  
    ,is_padded  
    ,is_disabled  
    ,allow_row_locks  
    ,allow_page_locks  
FROM sys.indexes AS i  
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id  
WHERE is_hypothetical = 0 AND i.index_id <> 0   
AND i.object_id = OBJECT_ID('Production.Product');  
GO  

Pasos siguientes

Vistas de catálogo de objetos (Transact-SQL)
Vistas de catálogo (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL)
Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server
In-Memory OLTP (optimización In-Memory)