Blueimp 論壇首頁
  首頁  | 討論區  | 最新話題  | 搜尋  | XML  |  登入
博客來購書 | 《主管這樣帶人就對了!》
貝殼鯨魚兒童程式啟蒙(點我去報名)

此話題中所有文章數: 1 [ 話題狀態: 一般 ]
上一話題 此文章已經觀看 5473 次 而且有 0 篇回應 下一話題
會員大頭照
男寶寶 jimmy 《一般生》
文章: 84
v3.8.8

索引重整與效率

MS SQL 教學
最近為了要讓資料量比較大的的Table, 在查詢一些明細及處理彙總表的人不會等待太久而睡著,所以特別查了一下關於調校 MSSQL 2005 校能的相關整理。

Table 病因
Table 量約為 280萬筆資料(太肥了,要瘦身), 未做部份欄位索引前彙總表(月報)約十分鐘
效能調校的處理步驟如下:

Step 1: Create Index (這個不多做介紹,大家都很熟), 但要小心做,否則效能有可能會變成反效果。(產生月報表及彙總表的時間約為四分鐘,還是有點小肥)

Step 2 :執行 DBCC SHOWCONTIG(table name)- 單純針對table進行層級掃描先取得分頁相關資訊
例如: DDBC SHOWCONTIG(KBVI_DETAIL)

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

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

laughing 阿肥瘦身成功,但目標是一分鐘內,目前還在努力中....
----------------------------------------
熊爸天下名言: 學習要如倒吃甘蔗,將來一定會苦盡甘來
----------------------------------------
[編輯文章 2 次, 最後修改: jieh 於 2010/4/7 下午 03:39:30]

[2009/4/7 下午 04:23:30]   [返迴此篇文章頂端 ]  回到頂端