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
Le langage de programmation Transact-SQL fournit des instructions DBCC qui jouent le rôle d'instructions de console de base de données pour SQL Server.
Les instructions de la console de base de données sont regroupées selon les catégories suivantes :
| Catégorie de commande | Action |
|---|---|
| Maintenance | Les tâches de maintenance sur une base de données, un index ou un groupe de fichiers. |
| Divers | Les tâches diverses, telles que l'activation des indicateurs de trace ou la suppression d'une DLL de la mémoire. |
| Informationnel | Les tâches qui recueillent et affichent différents types d'informations. |
| Validation | Valide une base de données, une table, un index, un catalogue, un groupe de fichiers ou l'allocation de pages de base de données |
Les commandes DBCC prennent des paramètres d'entrée et renvoient des valeurs. Tous les paramètres des commandes DBCC acceptent les littéraux de type Unicode et DBCS.
Utilisation d’un instantané de base de données interne DBCC
Les commandes DBCC suivantes fonctionnent sur un instantané de base de données en lecture seule interne créé par le Moteur de base de données. L’instantané évite les problèmes de blocage et de concurrence pendant l’exécution de ces commandes. Pour plus d’informations, consultez Instantanés de base de données (SQL Server).
DBCC CHECKALLOCDBCC CHECKCATALOGDBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKTABLE
Quand vous exécutez l’une de ces commandes DBCC, le Moteur de base de données crée un instantané de base de données dont l’état est cohérent d’un point de vue transactionnel. La commande DBCC exécute alors les vérifications sur cet instantané. Lorsque la commande DBCC a terminé, cet instantané est supprimé.
Parfois, l’instantané de base de données interne n’est pas nécessaire ou ne peut pas être créé. Dans ce cas, la commande DBCC s'exécute sur la base de données réelle. Si la base de données est en ligne, la commande DBCC a recours au verrouillage des tables pour garantir la cohérence des objets qu'elle est en train de vérifier. Ce comportement serait identique si l’option WITH TABLOCK était spécifiée.
Aucun instantané de base de données interne n'est créé lors de l'exécution d'une commande DBCC :
- Sur la base de données
master, si l’instance de SQL Server s’exécute en mode mono-utilisateur. - Sur une base de données autre que
master, si cette base de données a été mise en mode mono-utilisateur avec l’instructionALTER DATABASE. - Sur une base de données en lecture seule.
- Sur une base de données qui a été mise en mode urgence avec l’instruction
ALTER DATABASE. - Sur
tempdb. Dans ce cas, l'instantané de base de données ne peut pas être créé, en raison de restrictions internes. - Utilisation de l’option
WITH TABLOCK. Dans ce cas, DBCC satisfait la demande en ne créant pas d'instantané de la base de données.
Les commandes DBCC utilisent des verrous de table au lieu d'instantanés internes de base de données lorsque la commande est exécutée sur les bases de données suivantes :
- un groupe de fichier en lecture seule ;
- un système de fichiers FAT ;
- un volume qui ne prend pas en charge les flux nommés ;
- un volume qui ne prend pas en charge les flux de remplacement.
Notes
L’exécution de DBCC CHECKALLOC, ou la partie équivalente de DBCC CHECKDB, en utilisant l’option WITH TABLOCK requiert un verrou exclusif (X) sur la base de données. Ce verrou de base de données ne peut pas être défini sur des bases de données tempdb ni master et risque d’échouer sur toutes les autres bases de données.
Notes
DBCC CHECKDB échoue quand il est exécuté sur une base de données master et que la création d’un instantané de base de données interne n’est pas possible.
Rapport de progression des commandes DBCC
La vue de catalogue sys.dm_exec_requests contient des informations sur la progression et la phase actuelle de l’exécution des commandes DBCC CHECKDB, CHECKFILEGROUP et CHECKTABLE. La colonne percent_complete indique le pourcentage d’exécution de la commande, et la colonne command indique la phase d’exécution en cours de cette commande.
La définition d'une unité de progression dépend de la phase en cours d'exécution de la commande DBCC. La progression est parfois indiquée avec un niveau de granularité correspondant à une page de base de données, alors que pour d'autres phases elle est indiquée avec un niveau de granularité correspondant à une seule réparation de base de données ou d'allocation. Le tableau qui suit décrit chaque phase de l'exécution, et le niveau de granularité utilisé par la commande pour indiquer la progression.
| Phase d'exécution | Description | Granularité du rapport de progression |
|---|---|---|
DBCC TABLE CHECK |
Durant cette phase, la cohérence logique et physique des objets de la base de données est vérifiée. | La progression est indiquée au niveau de la page de base de données. La valeur de rapport de progression est actualisée toutes les 1 000 pages de base de données vérifiées. |
DBCC TABLE REPAIR |
Durant cette phase, des réparations de la base de données sont effectuées si REPAIR_FAST, REPAIR_REBUILD ou REPAIR_ALLOW_DATA_LOSS est spécifié et qu’il y a des erreurs à réparer sur les objets. |
La progression est indiquée au niveau de la réparation. Le compteur est mis à jour pour chaque réparation terminée. |
DBCC ALLOC CHECK |
Durant cette phase, les structures d'allocation de la base de données sont vérifiées. Remarque : DBCC CHECKALLOC effectue les mêmes vérifications. |
La progression n’est pas indiquée |
DBCC ALLOC REPAIR |
Durant cette phase, des réparations de la base de données sont effectuées si REPAIR_FAST, REPAIR_REBUILD ou REPAIR_ALLOW_DATA_LOSS est spécifié et qu’il y a des erreurs d’allocation à réparer. |
La progression n’est pas indiquée. |
DBCC SYS CHECK |
Durant cette phase, les tables système de la base de données sont vérifiées. | La progression est indiquée au niveau de la page de base de données. La valeur de progression est actualisée toutes les 1 000 pages de base de données vérifiées. |
DBCC SYS REPAIR |
Durant cette phase, des réparations de la base de données sont effectuées si REPAIR_FAST, REPAIR_REBUILD ou REPAIR_ALLOW_DATA_LOSS est spécifié et qu’il y a des erreurs à réparer sur les tables système. |
La progression est indiquée au niveau de la réparation. Le compteur est mis à jour pour chaque réparation terminée. |
DBCC SSB CHECK |
Durant cette phase, les objets SQL Server Service Broker sont vérifiés. Remarque : Cette phase n’est pas effectuée quand DBCC CHECKTABLE est exécuté. |
La progression n’est pas indiquée. |
DBCC CHECKCATALOG |
Durant cette phase, la cohérence des catalogues de la base de données est vérifiée. Remarque : Cette phase n’est pas effectuée quand DBCC CHECKTABLE est exécuté. |
La progression n’est pas indiquée. |
DBCC IVIEW CHECK |
Durant cette phase, la cohérence logique des vues indexées présentes dans la base de données est vérifiée. | La progression est indiquée au niveau de chaque vue de base de données vérifiée. |
Instructions d’information
- TAMPON D’ENTRÉE DBCC
- DBCC SHOWCONTIG
- DBCC OPENTRAN
- TAMPON DE SORTIE DBCC
- DBCC PROCCACHE
- DBCC SHOW_STATISTICS
- DBCC SQLPERF
- STATUT DE TRACE DU DBCC
- DBCC USEROPTIONS
Instructions de validation
- DBCC CHECKALLOC
- CATALOGUE DE CONTRÔLE DBCC
- CONTRAINTES DE CONTRÔLE DBCC
- DBCC CHECKDB
- GROUPE DE FICHIERS DE CONTRÔLE DBC
- VÉRIFICATEUR DBCC
- TABLE DE CONTRÔLE DU DBCC
Instructions de maintenance
- DBCC CLEANTABLE
- DBCC DBREINDEX
- TAMPONS DBCC DROPCLEANCLEANTUN
- DBCC FREEPROCCACHE
- DBCC INDEXDEFRAG
- DBCC SHRINKDATABASE
- FICHIER DE RÉDUCTION DBCC
- MISE À JOUR DBCC
Instructions diverses
- NOM DLL DDCC (GRATUIT)
- AIDE DU DBC
- DGBCC FLUSHAUTHCACHE
- TRACE DE LA DBCC
- DBCC FREESESSIONCACHE
- DBCC TRACEON
- CACHE DU SYSTÈME LIBRE DBC
- DBCC CLONEDATABASE (S’applique à : SQL Server 2014 (12.x) Service Pack 2 et versions ultérieures.)