DBCC (Database Console Commands) 是 SQL Server 診斷、維護、除錯的核心工具箱。本文系統整理 DBCC 分類、查詢可用命令方法、關鍵追蹤旗標(2588、3604),並深度實戰解析 DBCC IND 與 DBCC PAGE 兩大資料頁面分析利器。
DBCC HELP ('?') 列出 ~32 個公開命令。DBCC TRACEON(2588); DBCC HELP ('?')。

| 旗標 | 功能 | 必要性 |
|---|---|---|
| 2588 | 顯示非公開 DBCC 命令於 HELP 輸出 | 探索內部命令必備 |
| 3604 | 將 DBCC PAGE/IND 等輸出導向用戶端(SSMS 訊息頁籤) | 分析資料頁**必開** |
DBCC IND ( { 'dbname' | dbid }, { 'objname' | objid }, { index_id | 0 | 1 | -1 | -2 } )
1:叢集索引資料頁 + IAM 頁0:堆表資料頁 + IAM 頁-1:**所有頁面**(IAM、索引頁、資料頁、LOB 頁等)-2:僅 IAM 頁>1 (非叢集 index_id):對應非叢集索引(2=第一個、3=第二個...)PageFID:PagePID:檔案號:頁碼(定位頁面座標)IAMFID:IAMPID:所屬 IAM 頁座標(NULL 代表自身為 IAM 頁)PageType:1=資料頁、2=索引頁、10=IAM 頁IndexLevel:0=葉層、>0=中繼/根層範例輸出:
DBCC PAGE ( { 'dbname' | dbid }, file_id, page_id, print_option )
| Option | 輸出內容 |
|---|---|
| 0 | 頁首資訊(96 bytes)可讀格式 |
| 1 | 頁首 + 槽位對應記錄的十六進位內容 |
| 2 | **完整頁面十六進位傾印**(頁首+資料+槽位表),最常用 |
| 3 | 頁首 + 每記錄每欄位可讀格式 |
DBCC TRACEON(3604); DBCC PAGE(Ctrip, 1, 173, 1);
關鍵發現:
aaaaa, bbbbb...)。940000 00010000 00020000 解析為 PageID=0x94=148, FileID=0x01=1, Slot=0x02=2 → **RID 指向基表資料列**。

Option 3 輸出顯示:Child Page MinKey + Child PageID + FileID,構成 B-Tree 導航路徑。


查詢流程:WHERE Name='jjjjj' → 根頁定位範圍 → 中繼頁 → 葉頁找到 Key → 取出 RID → **RID Lookup (Key Lookup)** 回基表取其餘欄位。
DBCC IND 定位頁面、DBCC PAGE 剖析內容,配合 TRACEON(3604)、TRACEON(2588),是深入理解 SQL Server 儲存引擎、索引結構、資料頁損壞修復的核心技能組合。