Share via


sys.sysindexes (Transact-SQL)

Si applica a:SQL Server

Include una riga per ogni indice e tabella del database corrente. Gli indici XML non sono supportati in questa vista. Le tabelle e gli indici partizionati non sono completamente supportati in questa vista; usare invece la vista del catalogo sys.indexes .

Importante

Questa tabella di sistema di SQL Server 2000 è disponibile come vista per compatibilità con le versioni precedenti. È consigliabile usare invece le viste di sistema correnti di SQL Server. Per trovare la vista o le viste di sistema equivalenti, vedere Mapping delle tabelle di sistema alle viste di sistema (Transact-SQL). Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Nome colonna Tipo di dati Descrizione
id int ID della tabella alla quale appartiene l'indice.
status int Informazioni sullo stato del sistema.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
first binary(6) Puntatore alla prima pagina o alla pagina radice.

Non usato quando indid = 0.

NULL = l'indice viene partizionato quando indid> 1.

NULL = La tabella viene partizionata quando indid è 0 o 1.
indid smallint ID dell'indice:

0 = heap

1 = indice cluster

>1 = Indice non cluster
root binary(6) Per indid>= 1, root è il puntatore alla pagina radice.

Non usato quando indid = 0.

NULL = l'indice viene partizionato quando indid> 1.

NULL = La tabella viene partizionata quando indid è 0 o 1.
minlen smallint Dimensioni minime di una riga.
keycnt smallint Numero di chiavi.
groupid smallint ID del filegroup in cui l'oggetto è stato creato.

NULL = l'indice viene partizionato quando indid> 1.

NULL = La tabella viene partizionata quando indid è 0 o 1.
dpages int Per indid = 0 o indid = 1, dpages è il numero di pagine di dati usate.

Per indid> 1, dpages è il conteggio delle pagine di indice utilizzate.

0 = L'indice viene partizionato quando indid> 1.

0 = La tabella viene partizionata quando indid è 0 o 1.

Non restituisce risultati precisi se si verifica un overflow della riga.
reserved int Per indid = 0 o indid = 1, riservato è il numero di pagine allocate per tutti gli indici e i dati della tabella.

Per indid> 1, riservato è il numero di pagine allocate per l'indice.

0 = L'indice viene partizionato quando indid> 1.

0 = La tabella viene partizionata quando indid è 0 o 1.

Non restituisce risultati precisi se si verifica un overflow della riga.
used int Per indid = 0 o indid = 1, viene usato il conteggio delle pagine totali utilizzate per tutti i dati di indice e tabella.

Per indid> 1, viene usato il conteggio delle pagine utilizzate per l'indice.

0 = L'indice viene partizionato quando indid> 1.

0 = La tabella viene partizionata quando indid è 0 o 1.

Non restituisce risultati precisi se si verifica un overflow della riga.
rowcnt bigint Numero di righe a livello di dati basato su indid = 0 e indid = 1.

0 = L'indice viene partizionato quando indid> 1.

0 = La tabella viene partizionata quando indid è 0 o 1.
rowmodctr int Conta il numero totale di righe inserite, eliminate o aggiornate a partire dall'ultimo aggiornamento delle statistiche per la tabella.

0 = L'indice viene partizionato quando indid> 1.

0 = La tabella viene partizionata quando indid è 0 o 1.

In SQL Server 2005 (9.x) e versioni successive rowmodctr non è completamente compatibile con le versioni precedenti. Per altre informazioni, vedere la sezione Note.
reserved3 int Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
reserved4 int Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
xmaxlen smallint Dimensioni massime di una riga.
maxirow smallint Dimensioni massime di una riga di indice non foglia.

In SQL Server 2005 (9.x) e versioni successive maxirow non è completamente compatibile con le versioni precedenti.
OrigFillFactor tinyint Valore del fattore di riempimento originale utilizzato durante la creazione dell'indice. Questo valore non viene mantenuto. Può tuttavia risultare utile se è necessario ricreare un indice e non si ricorda il fattore di riempimento utilizzato.
StatVersion tinyint Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
reserved2 int Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
FirstIAM binary(6) NULL = l'indice viene partizionato.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
impid smallint Flag di implementazione dell'indice.

Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
lockflags smallint Utilizzata per vincolare le granularità dei blocchi considerati per un indice. Per ridurre al minimo il costo di blocco, è possibile ad esempio impostare una tabella di ricerca essenzialmente di sola lettura per l'esecuzione del blocco solo a livello di tabella.
pgmodctr int Viene restituito 0.

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
keys varbinary(816) Elenco degli ID delle colonne che costituiscono la chiave dell'indice.

Restituisce NULL.

Per visualizzare le colonne chiave di indice, usare sys.sysindexkeys.
name sysname Nome dell'indice o della statistica. Restituisce NULL quando indid = 0. Modificare l'applicazione in uso in modo da eseguire la ricerca di un nome di heap NULL.
statblob Immagine BLOB (Binary Large Object) per statistiche.

Restituisce NULL.
maxlen int Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
rows int Numero di righe a livello di dati basato su indid = 0 e indid = 1 e il valore viene ripetuto per indid>1.

Osservazioni:

Le colonne definite come riservate non devono essere utilizzate.

Le colonne dpages, riservate e utilizzate non restituiscono risultati accurati se la tabella o l'indice contiene dati nell'unità di allocazione ROW_OVERFLOW. I conteggi delle pagine per ogni indice vengono inoltre rilevati separatamente e per la tabella di base non vengono aggregati. Per visualizzare i conteggi delle pagine, usare le viste del catalogo sys.allocation_units o sys.partitions o la sys.dm_db_partition_stats vista a gestione dinamica.

In SQL Server 2000 e versioni precedenti il motore di database ha mantenuto i contatori di modifica a livello di riga. Questi contatori vengono ora gestiti a livello di colonna. Di conseguenza, la colonna rowmodctr viene calcolata e produce risultati simili ai risultati nelle versioni precedenti, ma non sono esatti.

Se si usa il valore in rowmodctr per determinare quando aggiornare le statistiche, prendere in considerazione le soluzioni seguenti:

  • Non eseguire alcuna operazione. Il nuovo valore rowmodctr consente spesso di determinare quando aggiornare le statistiche perché il comportamento è ragionevolmente vicino ai risultati delle versioni precedenti.

  • Utilizzare AUTO_UPDATE_STATISTICS. Per altre informazioni, vedere Statistiche.

  • Determinare il momento dell'aggiornamento delle statistiche in base a un intervallo di tempo. Ad esempio, ogni ora, ogni giorno o ogni settimana.

  • Determinare il momento dell'aggiornamento delle statistiche utilizzando informazioni a livello di applicazione. Ad esempio, ogni volta che il valore massimo di una colonna Identity cambia di più di 10.000 o ogni volta che viene eseguita un'operazione di inserimento bulk.

Vedi anche

Viste del catalogo (Transact-SQL)
Mapping delle tabelle di sistema alle viste di sistema (Transact-SQL)
sys.indexes (Transact-SQL)