dbcc checkalloc ensures that:
All pages are correctly allocated
Partition statistics on the allocation pages are correct
No page is allocated that is not used
No page is used that is not allocated
The syntax for dbcc checkalloc is:
dbcc checkalloc [(database_name [, fix | nofix] )]
If you do not provide a database name, dbcc checkalloc checks the current database.
With the fix option, dbcc checkalloc can fix all allocation errors that would otherwise be fixed by dbcc tablealloc and can also fix pages that remain allocated to objects that have been dropped from the database. Before you can use dbcc checkalloc with the fix option, you must put the database into single-user mode. For details on using the fix and no fix options, see “Correcting allocation errors using the fix | nofix option”.
dbcc checkalloc output consists of a block of data for each table, including the system tables and the indexes on each table. For each table or index, it reports the number of pages and extents used. Table information is reported as either INDID=0 or INDID=1. Tables without clustered indexes have INDID=0, as shown in the example report on the salesdetail table. Tables with clustered indexes have INDID=1. The report for these indexes includes information at both the data and index level, as shown in the example reports on titleauthor and titles. Nonclustered indexes are numbered consecutively, starting with INDID=2.
The following report on pubs2 shows the output for the salesdetail, titleauthor, and titles tables:
*************************************************************** TABLE: salesdetail OBJID = 144003544 INDID=0 FIRST=297 ROOT=299 SORT=0 Data level: 0. 3 Data Pages in 1 extents. INDID=2 FIRST=289 ROOT=290 SORT=1 Indid : 2. 3 Index Pages in 1 extents. INDID=3 FIRST=465 ROOT=466 SORT=1 Indid : 3. 3 Index Pages in 1 extents. TOTAL # of extents = 3 *************************************************************** TABLE: titleauthor OBJID = 176003658 INDID=1 FIRST=433 ROOT=425 SORT=1 Data level: 1. 1 Data Pages in 1 extents. Indid : 1. 1 Index Pages in 1 extents. INDID=2 FIRST=305 ROOT=305 SORT=1 Indid : 2. 1 Index Pages in 1 extents. INDID=3 FIRST=441 ROOT=441 SORT=1 Indid : 3. 1 Index Pages in 1 extents. TOTAL # of extents = 4 *************************************************************** TABLE: titles OBJID = 208003772 INDID=1 FIRST=417 ROOT=409 SORT=1 Data level: 1. 3 Data Pages in 1 extents. Indid : 1. 1 Index Pages in 1 extents. INDID=2 FIRST=313 ROOT=313 SORT=1 Indid : 2. 1 Index Pages in 1 extents. TOTAL # of extents = 3 ***************************************************************