sp_statistics (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma 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 ottengonoSQL_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 = Univoco1 = 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_NAME a . |
INDEX_NAME |
sysname | Nome dell'indice. Questa colonna restituisce sempre un valore . |
TYPE |
smallint | Questa colonna restituisce sempre un valore:0 = Statistiche per una tabella1 = Clustered2 = Hashed3 = 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 = CrescenteD = DecrescenteNULL = 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_NAME
e 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_UNIQUE
base a , TYPE
INDEX_QUALIFIER
, , INDEX_NAME
e 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;