pagenum [, printopt={0|1|2|3} ])
First, you need to identify the pages containing the differential bitmap page. To return information about the page header and each individual row, run the DBCC PAGE command with the filenum argument set to 1, the pagenum argument set to 0, and the printopt argument set to 3:
WITH TABLERESULTS, NO_INFOMSGS
Figure A: Results of the initial DBCC PAGE query Figure A shows the results. As you can see, the first differential bitmap page is page 6 of the first file in the database, so its page ID is (1:6). The VALUE column in Figure A shows that it has changed since the last differential base backup, so you can run the DBCC PAGE command with filenum set to 1, pagenum set to 6, and printopt set to 3:
WITH TABLERESULTS, NO_INFOMSGS
Figure B: Results of the DBCC PAGE query on PageID (1:6)
Figure B shows the results. The ParentObjects column shows DIFF_MAP for all extents covered by this GAM. The Field column shows pages grouped in extents, and the VALUE column indicates whether the extents have changed or not changed. From here, you can calculate the amount of data that has changed and estimate the size of the differential backup.
In the blog “New script: How much of the database has changed since the last full backup?”, Paul Randal provides a script that uses DBCC PAGE to calculate the percentage of data changed across an entire database since the last full backup. This information can help you decide whether to perform a full backup or differential backup.

