Optimisation des performances DBCC CHECKDB

Généralement, DBCC CHECKDB et les instructions connexes doivent lire chaque page allouée du disque dans la mémoire pour qu'elle puisse être vérifiée. L'exécution de DBCC CHECKDB lorsqu'il y a déjà beaucoup d'activité sur le système entraîne une baisse des performances de DBCC pour deux raisons. Tout d'abord, il y a moins de mémoire disponible, et Moteur de base de données SQL Server est contraint de mettre en attente une partie des données internes de DBCC CHECKDB dans la base de données tempdb. Ensuite, DBCC CHECKDB essaie d'optimiser sa manière de lire les données sur le disque. Si le disque est déjà fort sollicité par d'autres processus, cette optimisation sera fortement réduite, et l'exécution sera ralentie.

Comme la base de données tempdb réside sur le disque, l'engorgement provenant des opérations d'E/S à mesure que les données sont écrites à partir et sur le disque réduit les performances. Quelle que soit l'activité du système, l'exécution de DBCC CHECKDB sur des bases de données volumineuses (par rapport à la taille de la mémoire disponible) entraîne la mise en file d'attente de la base de données tempdb. Il est donc recommandé de placer la base de données tempdb sur un ou plusieurs disques rapides, comme un périphérique RAID, séparée des bases de données utilisateur. Pour plus d'informations, consultez ALTER DATABASE (Transact-SQL) et RAID.

Notes

L'exécution de DBCC CHECKDB entraîne automatiquement l'exécution de DBCC CHECKTABLE pour chaque table de la base de données et de DBCC CHECKALLOC et DBCC CHECKCATALOG, ce qui évite d'avoir à les exécuter séparément.