DBCC UPDATEUSAGE (Transact-SQL)

Si applica a:sì SQL Server (tutte le versioni supportate) Sì Azure SQL Database Sì Istanza gestita di SQL di Azure

Segnala e corregge le imprecisioni relative al conteggio delle pagine e delle righe nelle viste del catalogo. Queste imprecisioni possono causare la restituzione di report sull'utilizzo dello spazio non corretti da parte della stored procedure di sistema sp_spaceused.

Icona di collegamento all'argomentoIcona collegamento argomento Convenzioni della sintassi Transact-SQL

Sintassi

DBCC UPDATEUSAGE   
(   { database_name | database_id | 0 }   
    [ , { table_name | table_id | view_name | view_id }   
    [ , { index_name | index_id } ] ]   
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]   

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

database_name | database_id | 0
Nome o ID del database per cui si desidera segnalare e correggere le statistiche sull'utilizzo dello spazio. Se si specifica 0, viene utilizzato il database corrente. I nomi dei database devono essere conformi alle regole per gli identificatori.

| table_name | table_id | view_name view_id
Nome o ID della tabella o della vista indicizzata per cui si desidera segnalare e correggere le statistiche sull'utilizzo dello spazio. I nomi delle tabelle e delle viste devono essere conformi alle regole per gli identificatori.

| index_id index_name
ID o nome dell'indice da utilizzare. Se viene omesso, l'istruzione elabora tutti gli indici della tabella o della vista specificata.

WITH
Consente di specificare opzioni.

NO_INFOMSGS
Disattiva tutti i messaggi informativi.

COUNT_ROWS
Specifica che la colonna row count viene aggiornata in base al numero di righe corrente della tabella o della vista.

Osservazioni

L'istruzione DBCC UPDATEUSAGE corregge i conteggi delle righe, delle pagine utilizzate, delle pagine riservate, delle pagine foglia e delle pagine di dati per ogni partizione di una tabella o di un indice. Se nelle tabelle di sistema non vengono rilevate imprecisioni, l'istruzione DBCC UPDATEUSAGE non restituisce alcun dato. Se vengono rilevate e corrette alcune imprecisioni e l'opzione WITH NO_INFOMSGS non è stata utilizzata, l'istruzione DBCC UPDATEUSAGE restituisce le righe e le colonne aggiornate nelle tabelle di sistema.

DBCC CHECKDB è stato migliorato in modo da rilevare i casi in cui il conteggio delle pagine o delle righe diventa negativo. In tali situazioni, l'output DBCC CHECKDB include un avviso e l'indicazione di eseguire DBCC UPDATEUSAGE per risolvere il problema.

Procedure consigliate

È consigliabile attenersi alle linee guida seguenti:

  • Non eseguire DBCC UPDATEUSAGE regolarmente, perché SQL Server gestisce i metadati nella maggior parte dei casi. DBCC UPDATEUSAGE deve essere eseguito in base alle esigenze, ad esempio quando si sospetta che i valori non corretti vengano restituiti da sp_spaceused. L'esecuzione di DBCC UPDATEUSAGE su tabelle o database di grandi dimensioni può richiedere del tempo.
  • Prevedere un'esecuzione regolare di DBCC UPDATEUSAGE, ad esempio ogni settimana, solo se il database subisce frequenti modifiche DDL (Data Definition Language), come l'istruzione CREATE, ALTER o DROP.

Set di risultati

DBCC UPDATEUSAGE restituisce il messaggio seguente (i valori possono variare):

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del server sysadmin o al ruolo predefinito del database db_owner .

Esempi

R. Aggiornamento del conteggio delle pagine, delle righe o di entrambi per tutti gli oggetti nel database corrente

Nell'esempio seguente viene specificato il valore 0 per il nome del database e l'istruzione DBCC UPDATEUSAGE restituisce informazioni aggiornate relative al conteggio delle pagine o delle righe per il database corrente.

DBCC UPDATEUSAGE (0);  
GO  

B. Aggiornamento del conteggio delle pagine, delle righe o di entrambi per il database AdventureWorks e disattivazione dei messaggi informativi

Nell'esempio seguente viene specificato AdventureWorks2012 come nome del database e vengono eliminati tutti i messaggi informativi.

DBCC UPDATEUSAGE (AdventureWorks2012) WITH NO_INFOMSGS;   
GO  

C. Aggiornamento del conteggio delle pagine, delle righe o di entrambi per la tabella Employee

Nell'esempio seguente vengono riportate informazioni aggiornate sulla pagina o sul conteggio delle righe per la Employee tabella nel database AdventureWorks2012 .

DBCC UPDATEUSAGE (AdventureWorks2012,'HumanResources.Employee');  
GO  

D. Aggiornamento del conteggio delle pagine, delle righe o di entrambi per un indice specifico di una tabella

Nell'esempio seguente viene specificato il valore IX_Employee_ManagerID come nome dell'indice.

DBCC UPDATEUSAGE (AdventureWorks2012, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);  
GO  

Vedere anche

DBCC (Transact-SQL)
sp_spaceused (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)