DBCC UPDATEUSAGE (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse

Indique et corrige le nombre de pages et de lignes inexact dans les vues de catalogue. En raison de ces inexactitudes, la procédure stockée système sp_spaceused peut retourner des rapports incorrects en matière d'utilisation de l'espace.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

DBCC UPDATEUSAGE   
(   { database_name | database_id | 0 }   
    [ , { table_name | table_id | view_name | view_id }   
    [ , { index_name | index_id } ] ]   
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]   

Arguments

database_name | database_id | 0
Nom ou identificateur de la base de données pour laquelle les statistiques d'utilisation de l'espace doivent être consignées et corrigées. Si 0 est spécifié, la base de données active est utilisée. Les noms de base de données doivent être conformes aux règles des identificateurs.

nom_table | table_id | view_name | view_id
Nom ou identificateur de la table ou de la vue indexée dont les statistiques d'utilisation de l'espace doivent être consignées et corrigées. Les noms des tables et des vues doivent suivre les règles applicables aux identificateurs.

index_id | index_name
Identificateur ou nom de l'index à utiliser. Si aucun index n'est spécifié, l'instruction traite tous les index pour la table ou la vue indiquée.

par
Permet d'indiquer des options.

NO_INFOMSGS
Supprime tous les messages d'information.

COUNT_ROWS
Spécifie que la colonne row_count est mise à jour à l'aide du nombre actuel de lignes dans la table ou la vue.

Notes

DBCC UPDATEUSAGE corrige le nombre de lignes, de pages utilisées, de pages réservées, de pages de feuilles et de pages de données pour chaque partition d'une table ou d'un index. S'il n'y a pas d'imprécisions dans les tables système, DBCC UPDATEUSAGE ne retourne aucune donnée. Si des imprécisions sont trouvées et corrigées et si l'option WITH NO_INFOMSGS n'est pas utilisée, DBCC UPDATEUSAGE retourne les lignes et les colonnes mises à jour dans les tables système.

DBCC CHECKDB a été amélioré pour détecter le moment où les nombres de pages ou de lignes deviennent négatifs. Une fois cette détection effectuée, la sortie de DBCC CHECKDB contient un avertissement et une recommandation relatifs à l'exécution de DBCC UPDATEUSAGE afin de régler le problème.

Bonnes pratiques

Nous recommandons ce qui suit :

  • N'exécutez pas DBCC UPDATEUSAGE de manière régulière. Dans la mesure où DBCC UPDATEUSAGE peut prendre un certain temps pour s'exécuter sur les tables ou bases de données de grande taille, ne l'utilisez que si vous pensez que des valeurs incorrectes sont retournées par sp_spaceused.
  • Envisagez d'exécuter DBCC UPDATEUSAGE de manière régulière (chaque semaine, par exemple) uniquement si la base de données subit de fréquentes modifications du langage de définition de données (DDL), par exemple avec les instructions CREATE, ALTER ou DROP.

Jeux de résultats

DBCC UPDATEUSAGE retourne le résultat suivant (les valeurs peuvent varier) :

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

Permissions

Nécessite l’appartenance au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner .

Exemples

A. Mise à jour du nombre de pages ou de lignes, ou les deux, pour tous les objets de la base de données active

L'exemple suivant donne la valeur 0 au nom de la base de données et DBCC UPDATEUSAGE renvoie des informations mises à jour sur le nombre de pages ou de lignes dans la base de données active.

DBCC UPDATEUSAGE (0);  
GO  

B. Mise à jour du nombre de pages ou de lignes, ou les deux, pour AdventureWorks et suppression des messages d'information

L'exemple suivant spécifie AdventureWorks2012 en tant que nom de la base de données et supprime tous les messages d'information.

DBCC UPDATEUSAGE (AdventureWorks2012) WITH NO_INFOMSGS;   
GO  

C. Mise à jour du nombre de pages ou de lignes, ou les deux, pour la table Employee

L’exemple suivant signale les informations mises à jour nombre de pages ou de lignes pour le Employee de table dans le AdventureWorks2012 base de données.

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

D. Mise à jour du nombre de pages ou de lignes, ou les deux, pour un index précis d'une table

L'exemple suivant spécifie IX_Employee_ManagerID en tant que nom d'index.

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

Voir aussi

DBCC (Transact-SQL)
sp_spaceused ( Transact-SQL )
UPDATE STATISTICS (Transact-SQL)