DBCC(Database Consistency Checker)是 SQL Server 檢查資料庫邏輯與物理一致性、執行維護任務的核心命令集。本文按功能分類整理常用 DBCC 命令語法,供 DBA 日常運維參考。
DBCC DBREINDEX ('database.owner.table_name' [, index_name [, fillfactor ]]) [WITH NO_INFOMSGS]
DBCC INDEXDEFRAG (db_id, table_id, index_id) [WITH NO_INFOMSGS]
DBCC SHRINKDATABASE (database_name [, target_percent [, {NOTRUNCATE | TRUNCATEONLY}]])
DBCC SHRINKFILE ({file_name | file_id} [, target_size | {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}])
sysindexes 表中的不正確空間使用信息。
DBCC UPDATEUSAGE ({'db_name' | 0} [, {'table_name' | 'view_name'} [, {index_id | 'index_name'}]]) [WITH [COUNT_ROWS][, NO_INFOMSGS]]
DBCC TRACEON/OFF (trace# [,...n])
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 (table, target)
DBCC CHECKALLOC ('db_name' [, NOINDEX | {REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD}]) [WITH {[ALL_ERRORMSGS | NO_INFOMSGS] [, [TABLOCK]] [, [ESTIMATEONLY]]}]
DBCC CHECKCATALOG ('db_name') [WITH NO_INFOMSGS]
DBCC CHECKCONSTRAINTS [('table_name' | 'constraint_name')] [WITH {ALL_ERRORMSGS | ALL_CONSTRAINTS}]
DBCC CHECKDB ('db_name' [, NOINDEX | {REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD}]) [WITH {[ALL_ERRORMSGS] [, NO_INFOMSGS] [, TABLOCK] [, ESTIMATEONLY] [, PHYSICAL_ONLY]}]
DBCC CHECKFILEGROUP ([{'filegroup' | filegroup_id}] [, NOINDEX]) [WITH {[ALL_ERRORMSGS | NO_INFOMSGS] [, [TABLOCK]] [, [ESTIMATEONLY]]}]
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]]}]
REPAIR_ALLOW_DATA_LOSS 選項前,務必先完整備份,該選項可能導致資料遺失。DBCC CHECKDB(建議配合 PHYSICAL_ONLY 加速)作為一致性巡檢常規項目。DBCC SHOWCONTIG 結合 INDEXDEFRAG 或 REBUILD 制定索引維護策略。