sp_statistics (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_statistics
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] 'is_unique' ]
    [ , [ @accuracy = ] 'accuracy' ]
[ ; ]

Nota

Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Argomenti

[ @table_name = ] N'table_name'

Specifica la tabella utilizzata per restituire le informazioni del catalogo. @table_name è sysname, senza impostazione predefinita. La corrispondenza dei criteri con caratteri jolly non è supportata.

[ @table_owner = ] N'table_owner'

Nome del proprietario della tabella utilizzata per restituire informazioni sul catalogo. @table_owner è sysname, con il valore predefinito NULL. La corrispondenza dei criteri con caratteri jolly non è supportata. Se non viene specificato, si applicano le regole di visibilità della tabella predefinite del sistema di gestione del database sottostante.If't owner specified, the default table visibility rules of the underlying database management system (DBMS) apply.

In SQL Server, se l'utente corrente è proprietario di una tabella con il nome specificato, vengono restituiti gli indici di tale tabella. Se owner non è specificato e l'utente corrente non è proprietario di una tabella con l'oggetto specificato name, questa procedura cerca una tabella con il proprietario del database specificato name . Se tale tabella esiste, vengono restituiti gli indici corrispondenti.

[ @table_qualifier = ] N'table_qualifier'

Nome del qualificatore di tabella. @table_qualifier è sysname, con un valore predefinito .NULL Vari prodotti DBMS supportano la denominazione in tre parti per le tabelle (<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 = ] N'index_name'

Nome dell'indice. @index_name è sysname, con un valore predefinito .% La ricerca con caratteri jolly è supportata.

[ @is_unique = ] 'is_unique'

Indica se devono essere restituiti solo indici univoci (se Y). @is_unique è char(1) con un valore predefinito di stringa vuota.

[ @accuracy = ] 'accuratezza'

Livello di cardinalità e accuratezza della pagina per le statistiche. @accuracy è char(1) con il valore predefinito Q. Specificare E per assicurarsi che le statistiche vengano aggiornate in modo che la cardinalità e le pagine siano accurate.

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

  • Q (SQL_QUICK) chiede al driver di recuperare la cardinalità e le pagine, solo se sono prontamente disponibili dal server. In questo caso, il driver non garantisce che i valori siano correnti. Le applicazioni scritte nello standard Open Group ottengono SQL_QUICK sempre il comportamento dai driver conformi a 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 tabella. Questa colonna restituisce sempre un valore .
NON_UNIQUE smallint Non ammette i valori 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 è sempre uguale TABLE_NAMEa .
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 = Clustered
2 = Hashed
3 = Non cluster
SEQ_IN_INDEX smallint Posizione della colonna all'interno dell'indice.
COLUMN_NAME sysname Nome colonna per ogni colonna dell'oggetto TABLE_NAME restituito. 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 del codice restituito

Nessuno.

Osservazioni:

Gli indici nel set di risultati vengono visualizzati in ordine crescente in base alle colonne NON_UNIQUE, TYPE, INDEX_NAMEe SEQ_IN_INDEX.

Gli indici di tipo cluster sono quelli in cui i dati della tabella sono archiviati nell'ordine dell'indice, Questo valore corrisponde agli indici cluster di SQL Server.

Il tipo di indice Hashed accetta ricerche esatte di corrispondenza o intervallo, ma le ricerche dei criteri di ricerca non usano l'indice.

La sp_statistics stored procedure di sistema equivale a SQLStatistics in ODBC. I risultati restituiti vengono ordinati in NON_UNIQUEbase a , TYPEINDEX_QUALIFIER, , INDEX_NAMEe SEQ_IN_INDEX. Per altre informazioni, vedere le informazioni di riferimento su ODBC.

Autorizzazioni

È richiesta SELECT l'autorizzazione per lo schema.

Esempio: Azure Synapse Analytics and Analytics Platform System (PDW)

Nell'esempio seguente vengono restituite informazioni sulla DimEmployee tabella dal AdventureWorks database di esempio.

EXEC sp_statistics DimEmployee;