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

SQL Server常用DBCC命令速查手冊:維護、狀態、驗證全覆蓋

     編輯:關於SqlServer

DBCC (Database Consistency Checker) 是SQL Server核心維護工具集,分為維護、雜項、狀態、驗證四大類。本文整理高頻命令語法與典型場景,供DBA日常運維速查。

一、維護語句

命令用途典型語法
DBCC DBREINDEX重建表索引 (填充因子可調)DBCC DBREINDEX ('dbo.table', '', 80) WITH NO_INFOMSGS
DBCC INDEXDEFRAG在線整理索引碎片 (非阻塞)DBCC INDEXDEFRAG (db_id, 'table', 'index') WITH NO_INFOMSGS
DBCC SHRINKDATABASE收縮數據庫數據文件DBCC SHRINKDATABASE (db_name, 20) -- 目標20%剩餘空間
DBCC SHRINKFILE收縮指定文件 (數據/日誌)DBCC SHRINKFILE (log_file, 100) -- 壓縮至100MB
DBCC UPDATEUSAGE修正 sysindexes 頁計數錯誤DBCC UPDATEUSAGE (0) WITH COUNT_ROWS

二、雜項語句

命令用途語法
DBCC TRACEON/OFF啟用/禁用追蹤標志DBCC TRACEON (3604, -1) -- 全局啟用3604

三、狀態語句

命令用途關鍵參數
DBCC SHOWCONTIG顯示表/索引碎片信息WITH TABLERESULTS, ALL_INDEXES, FAST (推薦)
DBCC SHOW_STATISTICS查看統計信息直方圖DBCC SHOW_STATISTICS ('table', 'index')

四、驗證語句 (核心完整性檢查)

命令檢查範圍修復選項
DBCC CHECKALLOC磁盤空間分配結構REPAIR_ALLOW_DATA_LOSS / REPAIR_FAST / REPAIR_REBUILD
DBCC CHECKCATALOG系統表一致性WITH NO_INFOMSGS
DBCC CHECKCONSTRAINTS表約束完整性WITH ALL_CONSTRAINTS
DBCC CHECKDB全庫對象分配+結構 (最常用)WITH PHYSICAL_ONLY, NO_INFOMSGS, ALL_ERRORMSGS
DBCC CHECKFILEGROUP文件組所有表WITH ESTIMATEONLY (預估耗時)
DBCC CHECKTABLE單表/索引視圖數據+索引+LOB頁WITH PHYSICAL_ONLY (僅物理檢查,快)

實戰最佳實踐

  1. 例行檢查:每日 DBCC CHECKDB WITH PHYSICAL_ONLY (快);每週 DBCC CHECKDB (全)。
  2. 碎片維護:SHOWCONTIG 掃描 → 碎片 > 30% 用 INDEXDEFRAG (在線);> 50% 考慮 DBREINDEX (離線/Enterprise版 ONLINE=ON)。
  3. 收縮慎用:SHRINKFILE 會產生碎片,僅在磁盤空間極度緊張且確不再增長時使用,收縮後必須重建索引。
  4. 修復風險:REPAIR_ALLOW_DATA_LOSS 可能丟失數據,僅作最後手段,修復前必須全備份。

常用追蹤標志速查

  • 3604:輸出重定向到客戶端 (配合 DBCC PAGE)。
  • 1204/1222:死鎖圖輸出到錯誤日誌。
  • 3226:抑制備份成功日誌 (減少日誌噪音)。

建議將本表格導出為PDF貼在工位,關鍵時刻秒級查閱。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved