Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
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 sur l’utilisation de l’espace.
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_namedatabase_id | 0
Nom ou identificateur de la base de données pour laquelle les statistiques d’utilisation de l’espace doivent être indiqué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 suivre les règles applicables aux identificateurs.
table_name | 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 indiqué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.
WITH
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 feuilles et de pages de données pour chaque partition d’une table ou d’un index. S’il n’y a pas d’inexactitudes dans les tables système, DBCC UPDATEUSAGE ne retourne aucune donnée. Si des inexactitudes 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 quand 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 d’exécution de DBCC UPDATEUSAGE afin de régler le problème.
Bonnes pratiques
Nous recommandons ce qui suit :
- N’exécutez pas
DBCC UPDATEUSAGEde façon régulière, car SQL Server conserve les métadonnées dans la plupart des circonstances.DBCC UPDATEUSAGEdoit être exécuté en fonction des besoins, par exemple quand vous pensez que des valeurs incorrectes sont retournées parsp_spaceused.DBCC UPDATEUSAGEpeut prendre du temps pour s'exécuter sur de grandes tables ou bases de données. - Envisagez d’exécuter
DBCC UPDATEUSAGEde façon régulière (par exemple chaque semaine) seulement si la base de données subit de fréquentes modifications de type DDL, par exemple avec des 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.
Autorisations
Nécessite l’appartenance au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner .
Exemples
R. Mettre à jour le 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. Mettre à jour le nombre de pages ou de lignes, ou les deux, pour AdventureWorks et supprimer les messages d’information
L'exemple suivant spécifie AdventureWorks2025 en tant que nom de la base de données et supprime tous les messages d'information.
DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO
C. Mettre à jour le nombre de pages ou de lignes, ou les deux, pour la table Employee
L’exemple suivant retourne des informations mises à jour sur le nombre de pages ou de lignes dans la table Employeede la base de données AdventureWorks2025.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee');
GO
D. Mettre à jour le nombre de pages ou de lignes, ou les deux, pour un index spécifique d’une table
L'exemple suivant spécifie IX_Employee_ManagerID en tant que nom d'index.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO