首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server DBCC 命令大全:維護、狀態、驗證、雜項四大類常用指令速查

     編輯:關於SqlServer

DBCC(Database Consistency Checker)是 SQL Server 檢查資料庫邏輯與物理一致性、執行維護任務的核心命令集。本文按功能分類整理常用 DBCC 命令語法,供 DBA 日常運維參考。

一、維護語句:索引重建、碎片整理、縮減檔案、更新統計

  • DBCC DBREINDEX:重建指定表的一个或多个索引。
    DBCC DBREINDEX ('database.owner.table_name' [, index_name [, fillfactor ]]) [WITH NO_INFOMSGS]
  • DBCC INDEXDEFRAG:整理指定表/視圖的聚簇與非聚簇索引碎片(線上操作,無鎖定)。
    DBCC INDEXDEFRAG (db_id, table_id, 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 ({'db_name' | 0} [, {'table_name' | 'view_name'} [, {index_id | 'index_name'}]]) [WITH [COUNT_ROWS][, NO_INFOMSGS]]

二、雜項語句:追蹤標記控制

  • DBCC TRACEON / TRACEOFF:啟用/停用指定追蹤標記。
    DBCC TRACEON/OFF (trace# [,...n])

三、狀態語句:查看碎片與統計信息

  • DBCC SHOWCONTIG:顯示指定表/索引的資料與索引碎片信息(常與 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 ('db_name' [, NOINDEX | {REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD}]) [WITH {[ALL_ERRORMSGS | NO_INFOMSGS] [, [TABLOCK]] [, [ESTIMATEONLY]]}]
  • DBCC CHECKCATALOG:檢查系統表內部及系統表之間的一致性。
    DBCC CHECKCATALOG ('db_name') [WITH NO_INFOMSGS]
  • DBCC CHECKCONSTRAINTS:檢查指定表上的約束完整性。
    DBCC CHECKCONSTRAINTS [('table_name' | 'constraint_name')] [WITH {ALL_ERRORMSGS | ALL_CONSTRAINTS}]
  • DBCC CHECKDB:最全面,檢查資料庫中所有物件的分配與結構完整性(包含 CHECKALLOC、CHECKTABLE、CHECKCATALOG)。
    DBCC CHECKDB ('db_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:檢查指定表/索引視圖的資料、索引、LOB 頁完整性。
    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 制定索引維護策略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved