Condividi tramite


sys.sysindexes (Transact-SQL)

Data aggiornamento: 5 dicembre 2005

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 supportati completamente in questa vista. Utilizzare la vista del catalogo sys.indexes.

ms190283.note(it-it,SQL.90).gifImportante:
Questa tabella di sistema di SQL Server 2000 è disponibile come vista per compatibilità con le versioni precedenti. È invece consigliabile utilizzare le viste di sistema correnti di SQL Server. Per individuare la vista o le viste di sistema equivalenti, vedere Mapping delle tabelle di sistema di SQL Server 2000 alle viste di sistema di SQL Server 2005. Questa funzionalità verrà rimossa in una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare 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 interne sullo stato del sistema.

first

binary(6)

Puntatore alla prima pagina o alla pagina principale.

In SQL Server versione 6.5 e precedenti sysindexes.first punta sempre all'inizio di un heap, all'inizio del livello foglia di un indice oppure all'inizio di una catena di pagine text e image.

In SQL Server versione 7.0 e precedenti sysindexes.first non viene utilizzata 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)

Se indid >= 1, root corrisponde al puntatore alla pagina principale.

In SQL Server versione 6.5 e precedenti sysindexes.root punta all'ultima pagina di un heap quando indid = 0.

In SQL Server versione 7.0 e successive sysindexes.root non viene utilizzata 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

Se indid = 0 o indid = 1, dpages corrisponde al conteggio delle pagine di dati utilizzate.

Se indid > 1, dpages corrisponde al 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

Se indid = 0 o indid = 1, reserved corrisponde al conteggio delle pagine allocate per tutti gli indici e i dati delle tabelle.

Se indid > 1, reserved corrisponde al conteggio delle 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

Se indid = 0 o indid = 1, used corrisponde al conteggio totale delle pagine utilizzate per tutti gli indici e i dati delle tabelle.

Se indid > 1, used corrisponde al 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

Conteggio delle 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 rowmodctr non è completamente compatibile con le versioni precedenti. Per ulteriori informazioni, vedere la sezione Osservazioni.

xmaxlen

smallint

Dimensioni massime di una riga.

maxirow

smallint

Dimensioni massime di una riga di indice non foglia.

In SQL Server 2005 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

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future.

Restituisce 0.

reserved2

int

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future.

Restituisce 0.

FirstIAM

binary(6)

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future.

NULL = l'indice viene partizionato.

impid

smallint

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future. Flag di implementazione dell'indice.

Restituisce 0.

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

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future.

Restituisce 0.

keys

varbinary(816)

Elenco degli ID delle colonne che costituiscono la chiave dell'indice.

Restituisce NULL.

Per visualizzare le colonne chiave dell'indice, utilizzare sys.sysindexkeys (Transact-SQL).

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

image

BLOB (Binary Large Object) per statistiche.

Restituisce NULL.

maxlen

int

Identificazione a solo scopo informativo. Supporto non fornito. Non è garantita la compatibilità con le versioni future.

rows

int

Conteggio delle righe a livello di dati basato su indid = 0 e indid = 1. Il valore viene ripetuto per indid >1.

Osservazioni

Le colonne definite come riservate non devono essere utilizzate.

Nelle versioni precedenti di SQL Server per ogni tabella con almeno una colonna text, ntext o image è inoltre presente una riga in sysindexes con indid = 255. In SQL Server 2005 questo ID di indice non esiste più. Quando una tabella o un indice contiene uno o più tipi di dati LOB (Large Object), per gestire l'archiviazione di tali dati viene assegnata un'unità di allocazione LOB_DATA per partizione. Per ulteriori informazioni, vedere Organizzazione di tabelle e indici.

Le colonne dpages, reserved e used non restituiscono risultati precisi se la tabella o l'indice include dati presenti 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, utilizzare la vista del catalogo sys.allocation_units o sys.partitions. In alternativa, utilizzare la vista a gestione dinamica sys.dm_db_partition_stats.

Nelle versioni precedenti di SQL Server il Motore di database gestisce contatori delle modifiche a livello di riga. In SQL Server 2005 questi contatori vengono gestiti a livello di colonna. Pertanto, il calcolo della colonna rowmodctr genera risultati simili ma non esattamente corrispondenti a quelli delle versioni precedenti.

Se si utilizza il valore in rowmodctr per determinare il momento dell'aggiornamento delle statistiche, considerare le soluzioni seguenti:

  • Non eseguire alcuna operazione. Il nuovo valore di rowmodctr è spesso utile per determinare il momento dell'aggiornamento delle statistiche, poiché il comportamento di rowmodctr consente risultati molto simili a quelli restituiti dalle versioni precedenti.
  • Utilizzare AUTO_UPDATE_STATISTICS. Per ulteriori informazioni, vedere Statistiche dell'indice.
  • 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 viene modificato di oltre 10.000 unità oppure ogni volta che viene eseguito un inserimento di massa.

Vedere anche

Riferimento

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

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato
  • Modifica del valore restituito da NULL a 0 per tabelle e indici partizionati nelle colonne dpages, reserved, used, rowcnt e rowmodctr.
  • Correzione dei risultati restituiti nella colonna FirstIAM.