sys.indexes (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di sistemi analitici (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)