Condividi tramite


sp_createstats (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Chiama l'istruzione CREATE STATISTICS per creare statistiche a colonna singola sulle colonne che non sono già la prima colonna di un oggetto statistiche. La creazione di statistiche di colonna singola aumenta il numero di istogrammi, con un conseguente miglioramento delle stime della cardinalità, dei piani di query e delle prestazioni di esecuzione delle query. La prima colonna di un oggetto statistiche ha un istogramma; altre colonne non hanno un istogramma.

sp_createstats è utile per applicazioni come il benchmarking quando i tempi di esecuzione delle query sono critici e non possono attendere che Query Optimizer generi statistiche a colonna singola. Nella maggior parte dei casi non è necessario usare sp_createstats. Query Optimizer genera statistiche a colonna singola, se necessario, per migliorare i piani di query quando l'opzione AUTO_CREATE_STATISTICS è attiva.

Per altre informazioni sulle statistiche, vedere Statistiche. Per altre informazioni sulla generazione di statistiche a colonna singola, vedere l'opzione AUTO_CREATE_STATISTICS in Opzioni ALTER DATABASE SET.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_createstats
    [ [ @indexonly = ] 'indexonly' ]
    [ , [ @fullscan = ] 'fullscan' ]
    [ , [ @norecompute = ] 'norecompute' ]
    [ , [ @incremental = ] 'incremental' ]
[ ; ]

Argomenti

[ @indexonly = ] 'indexonly'

Crea statistiche solo sulle colonne che si trovano in un indice esistente e non sono la prima colonna in alcuna definizione di indice. @indexonly è char(9), con il valore predefinito NO.

[ @fullscan = ] 'fullscan'

Usa l'istruzione CREATE STATISTICS con l'opzione FULLSCAN . @fullscan è char(9), con il valore predefinito NO.

[ @norecompute = ] 'norecompute'

Usa l'istruzione CREATE STATISTICS con l'opzione NORECOMPUTE . @norecompute è char(12), con il valore predefinito NO.

[ @incremental = ] 'incremental'

Usa l'istruzione CREATE STATISTICS con l'opzione INCREMENTAL = ON . @incremental è char(12), con il valore predefinito NO.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Ogni nuovo oggetto statistiche ha lo stesso nome della colonna in cui viene creato.

Osservazioni:

sp_createstats non crea o aggiorna statistiche sulle colonne che rappresentano la prima colonna di un oggetto statistiche esistente. Include la prima colonna di statistiche create per gli indici, le colonne con statistiche a colonna singola generate con AUTO_CREATE_STATISTICS l'opzione e la prima colonna di statistiche create con l'istruzione CREATE STATISTICS . sp_createstats non crea statistiche sulle prime colonne di indici disabilitati, a meno che tale colonna non venga usata in un altro indice abilitato. sp_createstats non crea statistiche sulle tabelle con un indice cluster disabilitato.

Quando la tabella contiene un set di colonne, sp_createstats non crea statistiche sulle colonne di tipo sparse. Per altre informazioni sui set di colonne e sulle colonne di tipo sparse, vedere Usare set di colonne e Usare colonne di tipo sparse.

Autorizzazioni

Richiede l'adesione al ruolo predefinito del database db_owner.

Esempi

R. Creazione di statistiche di colonna singola su tutte le colonne idonee

Nell'esempio seguente vengono create statistiche di colonna singola su tutte le colonne idonee del database corrente.

EXEC sp_createstats;
GO

B. Creazione di statistiche di colonna singola su tutte le colonne di indice idonee

Nell'esempio seguente vengono create statistiche a colonna singola su tutte le colonne idonee già presenti in un indice e non sono la prima colonna dell'indice.

EXEC sp_createstats 'indexonly';
GO