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.

Icona di collegamento a un argomentoConvenzioni 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 è 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.