DBCC(Database Consistenecy Checker)命令是一個實用命令集,用來檢查一個資料庫的邏輯一致性及物理一致性。
主要分為四類:
維護語句:
DBCC DBREINDEX:重建指定表中的一個或多個索引
DBCC DBREINDEX
( 'database.owner.table_name'
[ , index_name
[ , fillfactor ]
]
) [ WITH NO_INFOMSGS ]
DBCC INDEXDEFRAG:整理指定的表或試圖的聚簇索引和輔助索引片段
DBCC INDEXDEFRAG
( { database_name database_id 0 }
, { table_name table_id 'view_name' view_id }
, { index_name index_id }
) [ WITH NO_INFOMSGS ]
DBCC SHRINKDATABASE:收縮指定資料庫的資料檔案的大小
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE TRUNCATEONLY } ]
)
DBCC SHRINKFILE:收縮指定資料庫的資料檔案或記錄檔大大小
DBCC SHRINKFILE
( { file_name file_id }
{ [ , target_size ]
[ , { EMPTYFILE NOTRUNCATE TRUNCATEONLY } ]
}
)
DBCC UPDATEUSAGE:報告和更正sysindexes表的不正確內容
DBCC UPDATEUSAGE
( { 'database_name' 0 }
[ , { 'table_name' 'view_name' }
[ , { index_id 'index_name' } ] ]
)
[ WITH [ COUNT_ROWS ] [ , NO_INFOMSGS ]
]
雜項語句:
DBCC TRACEON/OFF:開啟關閉指定的跟蹤標記
DBCC TRACEON/OFF ( trace# [ ,...n ] )
狀態語句:
DBCC SHOWCONTIG:顯示指定的表的資料和索引的片段資訊(使用 DBCC SHOWCONTIG 和 DBCC INDEXDEFRAG 對資料庫中的索引進行碎
片整理)
DBCC SHOWCONTIG
[ ( { table_name table_id view_name view_id }
[ , index_name index_id ]
)
]
[ WITH { ALL_INDEXES
FAST [ , ALL_INDEXES ]
TABLERESULTS [ , { ALL_INDEXES } ]
[ , { FAST ALL_LEVELS } ]
}
]
DBCC SHOW_STATISTICS:顯示指定表上的指定目標的當前分布統計資訊
DBCC SHOW_STATISTICS ( table , target )
驗證語句:
DBCC CHECKALLOC:檢查指定資料庫的磁碟空間分配結構的一致性
DBCC CHECKALLOC
( 'database_name'
[ , NOINDEX
{ REPAIR_ALLOW_DATA_LOSS
REPAIR_FAST
REPAIR_REBUILD
} ]
) [ WITH { [ ALL_ERRORMSGS NO_INFOMSGS ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
}
]
DBCC CHECKCATALOG:檢查指定資料庫中的系統資料表內及系統資料表之間的一致性
DBCC CHECKCATALOG
( 'database_name'
) [ WITH NO_INFOMSGS ]
DBCC CHECKCONSTRAINTS:檢查指定表上的指定約束或所有約束的完整性
DBCC CHECKCONSTRAINTS
[( 'table_name' 'constraint_name'
)]
[ WITH { ALL_ERRORMSGS ALL_CONSTRAINTS } ]
DBCC CHECKDB:檢查指定資料庫中的所有對象的分配和結構完整性
DBCC CHECKDB
( 'database_name'
[ , NOINDEX
{ REPAIR_ALLOW_DATA_LOSS
REPAIR_FAST
REPAIR_REBUILD
} ]
) [ WITH { [ ALL_ERRORMSGS ]
[ , [ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ]
}
]
DBCC CHECKFILEGROUP:檢查指定檔案組的所有表(當前資料庫中)的分配和結構完整性
DBCC CHECKFILEGROUP
( [ { 'filegroup' filegroup_id } ]
[ , NOINDEX ]
) [ WITH { [ ALL_ERRORMSGS NO_INFOMSGS ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
}
]
DBCC CHECKTABLE:檢查指定表或索引檢視表中的資料、索引及text,ntext和image頁的完整性
DBCC CHECKTABLE
( 'table_name' 'view_name'
[ , NOINDEX
index_id
{ REPAIR_ALLOW_DATA_LOSS
REPAIR_FAST
REPAIR_REBUILD }
]
) [ WITH { [ ALL_ERRORMSGS NO_INFOMSGS ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ]
}
]