sys.indexes (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)
Contiene una riga per ogni indice o heap di un oggetto in formato tabella, come una tabella, una vista o una funzione con valori di tabella.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
object_id | int | ID dell'oggetto a cui appartiene l'indice. |
name | sysname | Nome dell'indice. name è univoco solo all'interno dell'oggetto .NULL = Heap |
index_id | int | ID dell'indice. index_id è univoco solo all'interno dell'oggetto .0 = heap 1 = indice cluster > 1 = Indice non cluster |
type | tinyint | Tipo di indice: 0 = heap 1 = Rowstore cluster (albero B) 2 = Rowstore non cluster (albero B) 3 = XML 4 = Spaziale 5 = Indice columnstore cluster. Si applica a: SQL Server 2014 (12.x) e versioni successive. 6 = Indice columnstore non cluster. Si applica a: SQL Server 2012 (11.x) e versioni successive. 7 = Indice hash non cluster. Si applica a: SQL Server 2014 (12.x) e versioni successive. |
type_desc | nvarchar(60) | Descrizione del tipo di indice: HEAP CLUSTERED NONCLUSTERED XML SPATIAL CLUSTERED COLUMNSTORE - Si applica a: SQL Server 2014 (12.x) e versioni successive. NONCLUSTERED COLUMNSTORE - Si applica a: SQL Server 2012 (11.x) e versioni successive. NONCLUSTERED HASH: gli indici HASH NONCLUSTERED sono supportati solo nelle tabelle ottimizzate per la memoria. La sys.hash_indexes vista mostra gli indici hash correnti e le proprietà hash. Per altre informazioni, vedere sys.hash_indexes (Transact-SQL). Si applica a: SQL Server 2014 (12.x) e versioni successive. |
is_unique | bit | 1 = Indice univoco. 0 = Indice non univoco. Sempre 0 per gli indici columnstore cluster. |
data_space_id | int | ID dello spazio dati per l'indice. Lo spazio dati può essere un filegroup o uno schema di partizione. 0 = object_id è una funzione con valori di tabella o un indice in memoria. |
ignore_dup_key | bit | 1 = IGNORE_DUP_KEY è ON. 0 = IGNORE_DUP_KEY è OFF. |
is_primary_key | bit | 1 = L'indice fa parte di un vincolo PRIMARY KEY. Sempre 0 per gli indici columnstore cluster. |
is_unique_constraint | bit | 1 = L'indice fa parte di un vincolo UNIQUE. Sempre 0 per gli indici columnstore cluster. |
fill_factor | tinyint | > 0 = percentuale FILLFACTOR utilizzata quando l'indice è stato creato o ricompilato. 0 = Valore predefinito Sempre 0 per gli indici columnstore cluster. |
is_padded | bit | 1 = PADINDEX è ON. 0 = PADINDEX è OFF. Sempre 0 per gli indici columnstore cluster. |
is_disabled | bit | 1 = L'indice è disabilitato. 0 = L'indice non è disabilitato. |
is_hypothetical | bit | 1 = L'indice è ipotetico e non può essere utilizzato direttamente come percorso di accesso ai dati. Gli indici ipotetici contengono le statistiche a livello di colonna. 0 = L'indice non è ipotetico. |
allow_row_locks | bit | 1 = L'indice consente blocchi di riga. 0 = L'indice non consente blocchi di riga. Sempre 0 per gli indici columnstore cluster. |
allow_page_locks | bit | 1 = L'indice consente blocchi di pagina. 0 = L'indice non consente blocchi di pagina. Sempre 0 per gli indici columnstore cluster. |
has_filter | bit | 1 = L'indice dispone di un filtro e contiene solo righe che soddisfanno la definizione del filtro. 0 = L'indice non dispone di un filtro. |
filter_definition | nvarchar(max) | Espressione per il subset di righe incluso nell'indice filtrato. NULL per heap, indice non filtrato o autorizzazioni insufficienti per la tabella. |
compression_delay | int | > 0 = Ritardo di compressione dell'indice columnstore specificato in minuti. NULL = Il ritardo di compressione del rowgroup dell'indice columnstore viene gestito automaticamente. |
suppress_dup_key_messages | bit | 1 = L'indice è configurato per eliminare i messaggi di chiave duplicati durante un'operazione di ricompilazione dell'indice. 0 = Indice non configurato per eliminare i messaggi di chiave duplicati durante un'operazione di ricompilazione dell'indice. Si applica a: SQL Server (a partire da SQL Server 2017 (14.x)), database SQL di Azure e Istanza gestita di SQL di Azure |
auto_created | bit | 1 = Indice creato dall'ottimizzazione automatica. 0 = Indice creato dall'utente. Si applica a: Database SQL di Azure |
optimize_for_sequential_key | bit | 1 = L'ottimizzazione dell'inserimento dell'ultima pagina è abilitata. 0 = Valore predefinito. L'ottimizzazione dell'inserimento dell'ultima pagina è disabilitata. Si applica a: SQL Server (a partire da SQL Server 2019 (15.x)), database SQL di Azure e Istanza gestita di SQL di Azure |
Autorizzazioni
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui un utente è proprietario o a cui l'utente ha concesso alcune autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.
Esempi
Nell'esempio seguente vengono restituiti tutti gli indici per la tabella Production.Product
nel database 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
Passaggi successivi
Viste del catalogo oggetti (Transact-SQL)
Viste del catalogo (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)
Domande frequenti sull'esecuzione di query nel catalogo di sistema di SQL Server
OLTP in memoria (ottimizzazione in memoria)