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. In SQL Server 2005 questi valori vengono sempre gestiti in modo corretto. Nei database creati in SQL Server 2005 i conteggi sono sempre corretti. I database per i quali è stato eseguito l'aggiornamento a SQL Server 2005 , tuttavia, possono contenere conteggi non validi. Per correggere eventuali conteggi non validi, dopo l'aggiornamento a SQL Server 2005 è consigliabile eseguire DBCC UPDATEUSAGE.

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 di tabella e di vista 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.

Set di risultati

L'istruzione DBCC UPDATEUSAGE restituisce (i valori possono variare):

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

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.

Utilizzare l'istruzione DBCC UPDATEUSAGE per sincronizzare i contatori relativi all'utilizzo dello spazio. Poiché l'esecuzione di DBCC UPDATEUSAGE su tabelle o database di grandi dimensioni può richiedere un tempo prolungato, è consigliabile utilizzare questa istruzione solo quando si presume che i valori restituiti da sp_spaceused siano errati. La stored procedure sp_spaceused accetta un parametro facoltativo che consente di eseguire l'istruzione DBCC UPDATEUSAGE prima di restituire le informazioni sullo spazio per la tabella o l'indice.

Aggiornamento di database

Nelle versioni precedenti di SQL Server, i valori relativi al conteggio delle righe delle tabelle e degli indici e i numeri delle pagine possono essere errati. Nei database creati con versioni precedenti a SQL Server 2005 i conteggi potrebbero non essere corretti. Pertanto, per correggere eventuali conteggi non validi, dopo l'aggiornamento a SQL Server 2005 è consigliabile eseguire DBCC UPDATEUSAGE.

In SQL Server 2005, DBCC CHECKDB è stato migliorato in modo da rilevare i casi in cui il numero delle pagine o il conteggio 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. Sebbene possa sembrare che il problema sia dovuto all'aggiornamento del database a SQL Server 2005, in realtà i conteggi non validi erano già presenti prima dell'aggiornamento.

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 oppure 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 e delle righe per il database corrente.

DBCC UPDATEUSAGE (0);
GO

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

Nell'esempio seguente viene specificato il valore AdventureWorks per il 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 oppure di entrambi per la tabella Employee

Nell'esempio seguente vengono restituite informazioni aggiornate relative al conteggio delle pagine e 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 oppure 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

Vedere anche

Riferimento

DBCC (Transact-SQL)
sp_spaceused (Transact-SQL)
sys.sysindexes (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)

Altre risorse

Architettura di tabelle e indici
Procedura: Aggiornamento di un database utilizzando le operazioni di scollegamento e collegamento (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005