sys.indexes (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Base de datos SQL de Microsoft Fabric
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 AGRUPADOS: se aplica a: SQL Server 2014 (12.x) y versiones posteriores. ALMACÉN DE COLUMNAS NO CLÚSTER: se aplica a: SQL Server 2012 (11.x) y versiones posteriores. HASH NONCLUSTERED: 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, consulte 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 FILLFACTOR utilizado cuando se creó o recompiló 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 montón, í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 mensajes de clave duplicados durante una operación de recompilación de índices. Se aplica a: SQL Server (a partir de SQL Server 2017 (14.x)), Azure SQL Database y Azure SQL Instancia administrada |
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 Instancia administrada |
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 ha recibido 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 AdventureWorks2022.
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)