sys.indexes (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

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.
nome 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 o 5 = Indice cluster (albero B, columnstore)

> 1 e <> 5 = Indice non cluster
type tinyint Tipo di indice:

0 = heap

1 = Cluster

2 = Non cluster

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: e versioni SQL Server 2014 (12.x) successive.

NONCLUSTERED COLUMNSTORE: si applica a: e versioni SQL Server 2012 (11.x) successive.

HASH NONCLUSTERED: gli indici HASH NONCLUSTERED sono supportati solo nelle tabelle ottimizzate per la memoria. Nella vista sys.hash_indexes vengono mostrati 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 usata durante la creazione o la ricompilazione dell'indice.

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 duplicata durante un'operazione di ricompilazione dell'indice.

0 = L'indice non è configurato per eliminare i messaggi di chiave duplicata durante un'operazione di ricompilazione dell'indice.

Si applica a: SQL Server (A partire SQL Server 2017 (14.x) da ), database SQL di Azure e Istanza gestita di SQL di Azure
auto_created bit 1 = L'indice è stato creato dall'ottimizzazione automatica.

0 = L'indice è stato creato dall'utente.

Si applica a: database SQL di Azure
optimize_for_sequential_key bit 1 = L'ottimizzazione dell'inserimento nell'ultima pagina è abilitata per l'indice.

0 = Valore predefinito. L'ottimizzazione dell'inserimento dell'ultima pagina è disabilitata per l'indice.

Si applica a: SQL Server (A partire SQL Server 2019 (15.x) da ), 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 l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempio

Nell'esempio seguente vengono restituiti tutti gli indici per Production.Product la tabella nel database AdventureWorks2012 .

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  

Vedere anche

Viste del catalogo dell'oggetto (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 SQL Server catalogo di sistema
OLTP in memoria (ottimizzazione per la memoria)