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

SQL Server 2005 索引重建前後效能對比分析 (DBCC SHOWCONTIG / DBREINDEX)

     編輯:SQL Server 2005

透過 DBCC SHOWCONTIG 分析資料表索引碎片程度,判斷是否需要重建。本文實測某資料表重建前後的關鍵指標變化,展示索引維護效果。

重建前分析

DBCC SHOWCONTIG('TableName');
/*
掃描頁數..............................: 228
掃描區數..............................: 52
區切換次數............................: 225
每區平均頁數..........................: 4.4
掃描密度 [最佳:實際]................: 12.83% [29:226]
邏輯掃描碎片..........................: 97.37%
區掃描碎片............................: 98.08%
每頁平均可用位元組....................: 2686.3
平均頁密度(滿).......................: 66.81%
*/

執行重建

DBCC DBREINDEX('TableName');
-- 或現代語法 (SQL 2005+)
ALTER INDEX ALL ON TableName REBUILD;

重建後分析

DBCC SHOWCONTIG('TableName');
/*
掃描頁數..............................: 154
掃描區數..............................: 20
區切換次數............................: 19
每區平均頁數..........................: 7.7
掃描密度 [最佳:實際]................: 100.00% [20:20]
邏輯掃描碎片..........................: 0.00%
區掃描碎片............................: 55.00%
每頁平均可用位元組....................: 86.8
平均頁密度(滿).......................: 98.93%
*/

關鍵指標解讀

指標重建前重建後判讀
掃描密度12.83%100%越接近 100% 越好,表示資料連續儲存
邏輯掃描碎片97.37%0%頁面順序與邏輯順序不一致程度,< 10% 為佳
區掃描碎片98.08%55%區塊層級碎片,重建後仍存留因混合區分配造成
平均頁密度66.81%98.93%頁面填滿度,越高空間利用率越好
每頁平均可用位元組268687頁面剩餘空間,過大表示浪費空間且增加 I/O

維護建議

  • 定期排程:使用維護計畫或 SQL Server Agent 作業,每週/每月執行 ALTER INDEX REBUILD 或 REORGANIZE。
  • 線上重建:Enterprise 版支援 WITH (ONLINE = ON),不鎖定資料表,適合高可用環境。
  • 填充因子:針對頻繁插入/更新的表設定 FILLFACTOR = 80-90,預留空間減少分頁分裂。
  • 統計資料更新:重建索引會自動更新統計資料;若僅執行 REORGANIZE,需額外執行 UPDATE STATISTICS。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved