DBCC UPDATEUSAGE (Transact-SQL)
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.
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
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 ] ]
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
Non eseguire regolarmente DBCC UPDATEUSAGE. Poiché l'istruzione DBCC UPDATEUSAGE può richiedere una certa quantità di tempo se eseguita in tabelle o database di grandi dimensioni, deve essere utilizzata solo se si ritiene che valori non corretti vengano restituiti da sp_spaceused.
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
A.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 disattivati 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 restituite informazioni aggiornate relative al conteggio delle pagine o delle righe per la tabella Employee del 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