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.
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 è stata omessa, 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
Eseguire sempre DBCC UPDATEUSAGE dopo avere aggiornato un database da SQL Server 2000. I conteggi delle pagine e delle righe vengono corretti e vengono quindi gestiti in seguito a tale operazione.
Non eseguire DBCC UPDATEUSAGE regolarmente per i database creati in SQL Server 2005 o versione successiva o in database aggiornati corretti una volta tramite 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):
Esecuzione DBCC completata. Se sono stati visualizzati messaggi di errore DBCC, rivolgersi all'amministratore di sistema.
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, del conteggio 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, del conteggio delle righe o di entrambi per il database AdventureWorks e disattivazione dei messaggi informativi
Nell'esempio seguente viene specificato AdventureWorks come nome del database e vengono disattivati tutti i messaggi informativi.
USE AdventureWorks;
GO
DBCC UPDATEUSAGE (AdventureWorks) WITH NO_INFOMSGS;
GO
C. Aggiornamento del conteggio delle pagine, del conteggio 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 AdventureWorks.
USE AdventureWorks;
GO
DBCC UPDATEUSAGE (AdventureWorks,"HumanResources.Employee");
GO
D. Aggiornamento del conteggio delle pagine, del conteggio 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.
USE AdventureWorks;
GO
DBCC UPDATEUSAGE (AdventureWorks, "HumanResources.Employee", IX_Employee_ManagerID);
GO
Cronologia modifiche
Aggiornamento del contenuto |
---|
Aggiunta della sezione Procedure consigliate alla sezione Osservazioni. |
Vedere anche