sp_updatestats (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure
Viene eseguito UPDATE STATISTICS
su tutte le tabelle interne e definite dall'utente nel database corrente.
Per altre informazioni su UPDATE STATISTICS
, vedere UPDATE STATISTICS. Per altre informazioni sulle statistiche, vedere Statistiche.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_updatestats [ [ @resample = ] 'resample' ]
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Argomenti
[ @resample = ] 'resample'
Specifica che sp_updatestats
utilizza l'opzione RESAMPLE
dell'istruzione UPDATE STATISTICS . Se resample
non viene specificato, sp_updatestats
aggiorna le statistiche usando il campionamento predefinito. L'argomento resample
è varchar(8) con un valore predefinito .NO
Osservazioni:
sp_updatestats
UPDATE STATISTICS
esegue , specificando la ALL
parola chiave , in tutte le tabelle interne e definite dall'utente nel database. sp_updatestats
visualizza i messaggi che indicano lo stato di avanzamento. Al termine dell'aggiornamento, segnala che le statistiche vengono aggiornate per tutte le tabelle.
sp_updatestats
aggiorna le statistiche sugli indici non cluster disabilitati e non aggiorna le statistiche sugli indici cluster disabilitati.
Per le tabelle basate su disco, sp_updatestats
aggiorna le statistiche in base alle modification_counter
informazioni nella vista del catalogo sys.dm_db_stats_properties , aggiornando le statistiche in cui viene modificata almeno una riga. Le statistiche sulle tabelle ottimizzate per la memoria vengono sempre aggiornate durante l'esecuzione di sp_updatestats
. Pertanto, non eseguire sp_updatestats
più del necessario.
sp_updatestats
può attivare una ricompilazione di stored procedure o di altro codice compilato. Tuttavia, sp_updatestats
potrebbe non causare una ricompilazione, se è possibile un solo piano di query per le tabelle a cui si fa riferimento e gli indici su di essi. Una ricompilazione non sarebbe necessaria in tali casi anche se le statistiche vengono aggiornate.
sp_updatestats
mantiene l'opzione più recente NORECOMPUTE
per statistiche specifiche. Per altre informazioni sulla disabilitazione e sulla riabilitazione degli aggiornamenti delle statistiche, vedere Statistiche.
Quando si ripristina un database in SQL Server 2022 (16.x) da una versione precedente, è necessario eseguire sp_updatestats
nel database. Ciò è correlato all'impostazione dei metadati appropriati per la funzionalità di rilascio automatico delle statistiche introdotta in SQL Server 2022 (16.x). La funzionalità di rilascio automatico è disponibile in database SQL di Azure, Istanza gestita di SQL di Azure e a partire da SQL Server 2022 (16.x).
Autorizzazioni
Per SQL Server, è necessario essere il proprietario del database (dbo) o un membro del ruolo predefinito del server sysadmin .
Per database SQL di Azure, è necessario essere membri del ruolo predefinito del database db_owner.
Esempi
Nell'esempio seguente vengono aggiornate le statistiche per tutte le tabelle del database:
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Gestione automatica dell'indice e delle statistiche
Usare le soluzioni come la deframmentazione dell'indice adattativo per gestire automaticamente la deframmentazione dell'indice e gli aggiornamenti delle statistiche per uno o più database. Questa procedura sceglie automaticamente se ricompilare o riorganizzare un indice in base al relativo livello di frammentazione, tra gli altri parametri, e aggiornare le statistiche con una soglia lineare.
Contenuto correlato
- Stored procedure di sistema (Transact-SQL)
- Opzioni di ALTER DATABASE SET (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
- DBCC SHOW_STATISTICS (Transact-SQL)
- DROP STATISTICS (Transact-SQL)
- sp_autostats (Transact-SQL)
- sp_createstats (Transact-SQL)
- sys.dm_db_stats_properties
- UPDATE STATISTICS (Transact-SQL)