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 dasp_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