Condividi tramite


DBCC UPDATEUSAGE (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure 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 report di utilizzo dello spazio non corretti restituiti dalla stored procedure di sp_spaceused sistema.

Convenzioni relative alla 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 segnalare e correggere le statistiche di 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 vista indicizzata per cui segnalare e correggere le statistiche di 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:

DBCC UPDATEUSAGE corregge le righe, le pagine utilizzate, le pagine riservate, le pagine foglia e i conteggi delle pagine di dati per ogni partizione in una tabella o in un indice. Se non sono presenti imprecisioni nelle tabelle di sistema, DBCC UPDATEUSAGE non restituisce dati. Se vengono rilevate e corrette le imprecisioni e non vengono utilizzate le NO_INFOMSGS WITH, DBCC UPDATEUSAGE restituisce le righe e le colonne da aggiornare nelle tabelle di sistema.

DBCC CHECKDB è stato migliorato per rilevare quando i conteggi di pagine o righe diventano negativi. Quando viene rilevato, l'output DBCC CHECKDB contiene un avviso e una raccomandazione da eseguire DBCC UPDATEUSAGE per risolvere il problema.

Procedure consigliate

Consigliamo quanto segue:

  • 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. DBCC UPDATEUSAGE può richiedere del tempo per l'esecuzione su tabelle o database di grandi dimensioni.
  • Prendere in considerazione l'esecuzione DBCC UPDATEUSAGE routine (ad esempio, settimanale) solo se il database subisce frequenti modifiche DDL (Data Definition Language), ad esempio CREATE, ALTER o DROP.

Set di risultati

DBCC UPDATEUSAGE restituisce (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. Aggiornare i conteggi di pagine o righe o 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. Aggiornare i conteggi di pagine o righe o entrambi per AdventureWorks e eliminare i messaggi informativi

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

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Aggiornare i conteggi di pagine o righe o entrambi per la tabella Employee

Nell'esempio seguente vengono restituite informazioni aggiornate relative al conteggio delle pagine o delle righe per la tabella Employee nel database AdventureWorks2022.

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

D. Aggiornare i conteggi di pagine o righe o entrambi per un indice specifico in una tabella

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

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

Vedi anche