2009/01/19

[程式]MS-Sql 2000 效能調校

來源: http://www.wretch.cc/blog/wthomasu/9827849

step1.執行 DBCC SHOWCONTIG(my_table)
單純針對table進行層級掃描先取得分頁相關資訊
- 掃描的分頁................................: 64
- 掃描的範圍..............................: 11
- 範圍切換..............................: 12
- 每個範圍的平均分頁........................: 5.8
- 掃描密度 [最佳次數:實際次數].......: 33.54% [4:13]
- 邏輯掃描片段 ..................: 53.13%
- 範圍掃描片段 ...................: 36.36%

- 每個分頁的平均可用位元組.....................: 376.5
- 平均分頁密度 (全滿).....................: 95.35%

step2.執行 DBCC INDEXDEFRAG (MyDB, 'my_table',PK_my_table)
執行破碎頁面的整理後,掃描密度明顯地變大,分頁程度變得更緊密更平均。
邏輯掃描片段(cluster index叢集索引的葉層分頁狀況)愈大表示指標的指向愈紊亂,
也就是說「失序」頁面的比例,重整破碎頁面後確實有得到明顯的效果。

- 掃描的分頁................................: 63
- 掃描的範圍..............................: 9
- 範圍切換..............................: 8
- 每個範圍的平均分頁........................: 7.0
- 掃描密度 [最佳次數:實際次數].......: 88.89% [8:9]
- 邏輯掃描片段 ..................: 0.00%
- 範圍掃描片段 ...................: 44.44%

- 每個分頁的平均可用位元組.....................: 254.0
- 平均分頁密度 (全滿).....................: 96.86%

step3.執行 DBCC DBREINDEX (my_table,'' ,90)
執行索引的重整,並依需求重新設定填滿因子
(這個TABLE 查詢的比例多,資料異動機率並不是很頻繁,因此設為90%)
發現掃描密度、範圍掃描片段、分頁平均可用位元組得到更多的改善空間。

- 掃描的分頁................................: 68
- 掃描的範圍..............................: 9
- 範圍切換..............................: 8
- 每個範圍的平均分頁........................: 7.6
- 掃描密度 [最佳次數:實際次數].......: 100.00% [9:9]
- 邏輯掃描片段 ..................: 0.00%
- 範圍掃描片段 ...................: 0.00%

- 每個分頁的平均可用位元組.....................: 830.6
- 平均分頁密度 (全滿).....................: 89.74%
後記:
索引重整就像梳頭髮一樣,原本雜亂的頭髮愈梳他就會愈順
定期整理這些資料量大的table,讓index分頁的b-tree目錄在搜尋資料時發揮應有的效能,
索引一旦建立之後,應該更需要去維護它,放著不管最終反而變成是影響效能的因素之一。

但是索引並不是完全只有好處,異動頻繁的table除了不要建立太多的索引之外
對於索引的填滿率(填滿因子)更需注意,保留適當的空間,讓新刪修頻繁的table展現最好的效益。


下表 描述了每一行的意義
訊息描述
Pages Scanned表或索引中的長頁數
Extents Scanned表或索引中的長區頁數
Extent SwitchesDBCC遍歷頁時從一個區域到另一個區域的次數
Avg. Pages per Extent表或索引中的長頁數
Scan Density[Best Count:Actual Count]Best Count是連續鏈接時的理想區域改變數,Actual Count是實際區域改變數,Scan Density為100%表示沒有分塊。
Logical Scan Fragmentation掃瞄索引頁中失序頁的百分比
Extent Scan Fragmentation不實際相鄰和包含鏈路中所有鏈接頁的區域數
Avg. Bytes Free per Page掃瞄頁面中平均自由字節數
Avg. Page Density (full)平均頁密度,表示頁有多滿
Pages Scanned表或索引中的長頁數

0 意見: