Wednesday, February 22, 2012

Comment déterminer le taux de données ayant changées

Posted by Yukon on 22. August 2011 15:29

La commande DBCC PAGE (non documentée) peut être utilisée si vous désirez avoir une idée de la quantité de données qui change dans votre base de données. Sa syntaxe est la suivante:

DBCC PAGE ({‘dbname’|dbid}, filenum, 
 pagenum [, printopt={0|1|2|3} ])

Avant de commencer, vous avez besoin d’identifier les valeurs des paramètres filenum et pagenum ; c'est-à-dire identifier les pages contenant la page bitmap différentielle. Pour ce faire exécutez la commande suivante (exemple sur la base exemple AdventureWorks):

DBCC PAGE (AdventureWorks,1,0,3)

Vous obtenez ce le resultat ci-dessous :


Comme vous pouvez le constater sur la figure ci-dessus, la première page de bitmap différentielle (differential bitmap page) est la page 6 du premier fichier dans la base de données, donc son ID est (1 :6). La valeur dans la colonne VALUE indique qu’il y a eu un changement depuis la dernière sauvegarde différentielle. Vous pouvez donc exécuter la commande DBCC PAGE avec valeurs 1, 6 et 3 respectivement pour filenum, pagenum et printopt.

DBCC PAGE (AdventureWorks,1,6,3)
WITH TABLERESULTS, NO_INFOMSGS

Vous obtenez ainsi le resultat suivant:

La colonne ParentObjects affiche DIFF_MAP pour toutes les extensions couvertes par ce GAM. La colonne Field affiche les pages groupées dans les extensions, et la colonne VALUE indique si les extensions ont changées ou pas. Partant de là, vous pouvez calculer le taux de données ayant changées et ainsi estimer la taille de votre sauvegarde différentielle.

L’utilisation de la commande DBCC PAGE vous permettra de calculer le pourcentage de modification effectuée sur votre base de données et ainsi décider de la politique de sauvegarde à mettre en œuvre : « Backup FULL ou Backup DIFF ». Paul Randal dans son blog « New script: How much of the database has changed since the last full backup » fournit le script d’une procédure stockée permettant d’éffectuer cette opération.

Comments are closed