sp_statistics (Transact-SQL)

Restituisce un elenco di tutti gli indici e le statistiche per la tabella o vista indicizzata specificata.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_statistics [ @table_name = ] 'table_name'  
          [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
          [ , [ @index_name = ] 'index_name' ] 
     [ , [ @is_unique = ] 'is_unique' ]
     [ , [ @accuracy = ] 'accuracy' ]

Argomenti

  • [ @table_name= ] 'table_name'
    Specifica la tabella utilizzata per restituire le informazioni del catalogo. table_name è di tipo sysname e non prevede alcun valore predefinito. I criteri di ricerca con caratteri jolly non sono supportati.

  • [ @table_owner= ] 'owner'
    Nome del proprietario della tabella utilizzata per restituire le informazioni del catalogo. table_owner è di tipo sysname e il valore predefinito è NULL. I criteri di ricerca con caratteri jolly non sono supportati. Se non si specifica owner, vengono applicate le regole di visibilità della tabella predefinite del sistema DBMS sottostante.

    In SQL Server, se l'utente corrente è il proprietario di una tabella con il nome specificato, vengono restituiti gli indici di tale tabella. Se owner viene omesso e l'utente corrente non è il proprietario di una tabella con il valore name specificato, viene eseguita la ricerca di una tabella con nome corrispondente al valore name specificato e di proprietà del proprietario del database. Se tale tabella esiste, vengono restituiti gli indici corrispondenti.

  • [ @table_qualifier= ] 'qualifier'
    Nome del qualificatore di tabella. qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano nomi in tre parti per le tabelle, ovvero qualifier**.owner.**name. In SQL Server questo parametro rappresenta il nome del database. In altri prodotti rappresenta il nome del server dell'ambiente di database della tabella.

  • [ @index_name= ] 'index_name'
    Nome dell'indice. index_name è di tipo sysname e il valore predefinito è %. Sono supportati criteri di ricerca con caratteri jolly.

  • [ @is_unique= ] 'is_unique'
    Indica se devono essere restituiti solo indici univoci (se è uguale a Y). is_unique è di tipo char(1) e il valore predefinito è N.

  • [ @accuracy= ] 'accuracy'
    Livello di precisione della cardinalità e delle pagine per le statistiche. accuracy è di tipo char(1) e il valore predefinito è Q. Specificare E per verificare che le statistiche siano aggiornate in modo tale da garantire la precisione della cardinalità e delle pagine.

    Il valore E (SQL_ENSURE) chiede al driver di recuperare le statistiche in modo incondizionato.

    Il valore Q (SQL_QUICK) chiede al driver di recuperare la cardinalità e le pagine solo se queste sono immediatamente disponibili dal server. In tal caso, il driver non garantisce che i valori siano aggiornati. Per le applicazioni scritte in base allo standard Open Group viene restituito sempre il comportamento di SQL_QUICK da driver compatibili con ODBC 3.x.

Set di risultati

Nome colonna

Tipo di dati

Descrizione

TABLE_QUALIFIER

sysname

Nome del qualificatore della tabella. Questa colonna può essere NULL.

TABLE_OWNER

sysname

Nome del proprietario della tabella. Questa colonna restituisce sempre un valore.

TABLE_NAME

sysname

Nome della tabella. Questa colonna restituisce sempre un valore.

NON_UNIQUE

smallint

NOT NULL.

0 = Univoco

1 = Non univoco

INDEX_QUALIFIER

sysname

Nome del proprietario dell'indice. In alcuni prodotti DBMS gli indici possono essere creati da utenti diversi dal proprietario della tabella. In SQL Server questa colonna corrisponde sempre a TABLE_NAME.

INDEX_NAME

sysname

Nome dell'indice. Questa colonna restituisce sempre un valore.

TYPE

smallint

Questa colonna restituisce sempre un valore:

0 = Statistiche per una tabella

1 = Cluster

2 = Hash

3 = Non cluster

SEQ_IN_INDEX

smallint

Posizione della colonna all'interno dell'indice.

COLUMN_NAME

sysname

Nome di ogni colonna della tabella TABLE_NAME restituita. Questa colonna restituisce sempre un valore.

COLLATION

char(1)

Ordine utilizzato nelle regole di confronto. I possibili valori sono i seguenti:

A = Crescente

D = Decrescente

NULL = Non applicabile

CARDINALITY

int

Numero di righe nella tabella o di valori univoci nell'indice.

PAGES

int

Numero di pagine in cui archiviare l'indice o la tabella.

FILTER_CONDITION

varchar(128)

SQL Server non restituisce un valore.

Valori restituiti

Nessuno

Osservazioni

Gli indici nel set dei risultati vengono visualizzati in ordine crescente in base alle colonne NON_UNIQUE, TYPE, INDEX_NAME e SEQ_IN_INDEX.

Gli indici di tipo cluster sono quelli in cui i dati della tabella sono archiviati nell'ordine dell'indice, come per gli indici cluster di SQL Server.

Il tipo di indice Hash accetta ricerche di corrispondenze esatte o ricerche basate su intervalli, ma non viene utilizzato per ricerche con criteri.

sp_statistics corrisponde a SQLStatistics in ODBC. I risultati restituiti vengono ordinati in base alle colonne NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME e SEQ_IN_INDEX. Per ulteriori informazioni, vedere la Guida di riferimento alle API ODBC.

Autorizzazioni

È richiesta l'autorizzazione SELECT per lo schema.