REORGCHK
REORG
RUNSTAT
在(一)中收集了對(duì)象的統(tǒng)計(jì)信息,這里,可以用這些統(tǒng)計(jì)信息來(lái)診斷對(duì)象的物理存儲(chǔ)了。
具體內(nèi)容見(jiàn):http://blog.csdn.net/dlinger/archive/2004/10/12/133178.aspx
2.REORGCHK ,診斷對(duì)象的物理存儲(chǔ)
>>-REORGCHK----+-------------------------------+----------------------------------+<<
???????????????????????? |? |-UPDATE--|????????????????????????|??? |???????????????? .-USER-------??.--|
?????????????????????????'--+-CURRENT-+---STATISTICS--'???? '-ON TABLE--+-SYSTEM-----+--'
????????????????????????????????????????????????????????????????????????????????????????????? +-ALL--------+
?????????????????????????????????????????????????????????????????????????????????????????????? '-table-name-'
在UDB的V8版本中增加了on schema 的選項(xiàng)。
UPDATE STATISTICS:先調(diào)用RUNSTATS來(lái)對(duì)table進(jìn)行分析,
??????????????????????????????然后根據(jù)分析的統(tǒng)計(jì)信息診斷是否需要重組table
CURRENT STATISTICS:使用現(xiàn)有的統(tǒng)計(jì)信息診斷是否需要重組table
ON TABLE USER:? 當(dāng)前USER的所有table
ON TABLE SYSTEM:SYSTEM的所有table
ON TABLE ALL:??? 當(dāng)前db的所有table
ON TABLE table-name:指定名稱(chēng)的table
我們分析SYSIBM.SYSTABLES,看看具體的執(zhí)行結(jié)果:
db2 => reorgchk update statistics on table SYSIBM.SYSTABLES
執(zhí)行 RUNSTATS ....
表統(tǒng)計(jì)信息:
F1: 100 * OVERFLOW / CARD < 5
F2: 100 * (Effective Space Utilization of Data Pages) > 70
F3: 100 * (Required Pages / Total Pages) > 80
SCHEMA??? NAME????????????????? CARD??? OV??? NP??? FP ACTBLK??? TSIZE?? ?F1? F2? F3 REORG
----------------------------------------------------------------------------------------
SYSIBM??? SYSTABLES????????????2988???? 0?? 290?? 290????? -???? 4774824?? 0? 100 100 ---
----------------------------------------------------------------------------------------
索引統(tǒng)計(jì)信息:
F4: CLUSTERRATIO 或正常化的 CLUSTERFACTOR > 80
F5: 100 * (KEYS * (ISIZE + 9) + (CARD - KEYS) * 5) / ((NLEAF - NUM EMPTY LEAFS) * INDEXPAGESIZE) > 50
F6: (100 - PCTFREE) * ((INDEXPAGESIZE - 96) / (ISIZE + 12)) ** (NLEVELS - 2) * (INDEXPAGESIZE - 96)
??? / (KEYS * (ISIZE + 9) + (CARD - KEYS) * 5) < 100
F7: 100 * (NUMRIDS DELETED / (NUMRIDS DELETED + CARD)) < 20
F8: 100 * (NUM EMPTY LEAFS / NLEAF) < 20
SCHEMA?? NAME???????????????? CARD? LEAF ELEAF? LVLS ISIZE? NDEL?? KEYS? F4? F5? F6? F7? F8 REORG
-------------------------------------------------------------------------------------------------
表:SYSIBM.SYSTABLES
SYSIBM?? IBM00??????????????? ?2988??? 55???? 0???????? 2???? 27?????? 42??? 2988?? 95? 47?? 3?? 1?? 0? -*---
SYSIBM?? IBM137??????????????? 2988??? 18???? 0??????? 2???? 4???????? 52???? 2845? 98? 51?? 9?? 1?? 0? -----
SYSIBM?? IBM21??????????????? ?2988???? 5????? 0??????? 2???? 3???????? ?26????? 3???? 99? 73? 24?? 0?? 0? -----
SYSIBM?? IBM22??????????????? ?2988???? 5???? ?0??????? 2???? 3????????? 22????? 1????100? 72? 24?? 0?? 0? -----
SYSIBM?? IBM23???????????????? 2988???? 5????? 0??????? 2???? 3?????????? 2????? ?1??? 100? 72? 24?? 0?? 0? -----
SYSIBM?? IBM78???????????????? 2988???? 62???? 0?????? ?2??? 33???????? 17??? 2988? 95?? 49?? 2?? 0?? 0 -*---
-------------------------------------------------------------------------------------------------
CLUSTERRATIO 或正常化的 CLUSTERFACTOR(F4)將指示索引需要
REORG,該索引與基本表不在相同的序列中。當(dāng)在表中定義了多個(gè)索引時(shí),一個(gè)或多個(gè)索引
可能被標(biāo)記為需要 REORG。指定 REORG 順序的最重要索引。
使用 ORGANIZE BY 子句和相應(yīng)的維索引定義的表的名稱(chēng)有 '*'
后綴。維索引的基數(shù)等價(jià)于表的“活動(dòng)的塊數(shù)”統(tǒng)計(jì)信息。
先來(lái)說(shuō)明一下上面的信息:
CARD:基表中的數(shù)據(jù)行數(shù)
OV(OVERFLOW): 遷移行的數(shù)量
NP(NPAGES):? 包含數(shù)據(jù)的page的數(shù)量
FP(FPAGES): 該表總共分配的page數(shù)量
TSIZE:table的實(shí)際數(shù)據(jù)的大小,以字節(jié)為單位。
TABLEPAGESIZE:table所在表空間的page size
F1: 處理溢出行。在溢出行超過(guò)總行數(shù)的5%時(shí),該報(bào)告建議對(duì)table進(jìn)行重組。
F2:處理空間使用率。在TSIZE小于等于該表分配總空間的70%時(shí),該報(bào)告建議對(duì)table進(jìn)行重組。
F3:處理空白頁(yè)。所謂空白頁(yè),就是沒(méi)有數(shù)據(jù)的頁(yè)。當(dāng)table中空白頁(yè)大于20%時(shí),該報(bào)告建議對(duì)table進(jìn)行重組。
LEAF:index上葉節(jié)點(diǎn)的數(shù)量
LVLS(LEVELS):index級(jí)數(shù)
ISIZE:index的平均行長(zhǎng)。
KEYS:唯一取值的數(shù)量
INDEXPAGESIZE:index所在表空間的page size
PCTFREE:index page中預(yù)留空間(%)
F4:聚簇因子
F5:為index key預(yù)留的空間。這個(gè)值應(yīng)小于50%,否則該報(bào)告建議對(duì)index進(jìn)行重組
F6:估算index頁(yè)的用量,應(yīng)大于總數(shù)的90%,否則該報(bào)告建議對(duì)index進(jìn)行重組
F7:偽刪除RID的數(shù)量。應(yīng)小于總數(shù)的20%,否則該報(bào)告建議對(duì)index進(jìn)行重組
F8: 偽空頁(yè)的數(shù)量。應(yīng)小于總數(shù)的20%,否則該報(bào)告建議對(duì)index進(jìn)行重組
我們根據(jù)報(bào)告中REORG的值中有“*”來(lái)決定是否對(duì)table或index進(jìn)行數(shù)據(jù)重組。當(dāng)然,F(xiàn)1-F8的閥值只是建議值。
第三部分,我們將介紹在DB2中如何對(duì)數(shù)據(jù)進(jìn)行重組。