DB2提供了3个命令工具,重组和分析table中的数据:
REORGCHK
REORG
RUNSTAT
在(一)中收集了对象的统计信息,这里,可以用这些统计信息来诊断对象的物理存储了。
具体内容见:http://blog.csdn.net/dlinger/archive/2004/10/12/133178.aspx
2.REORGCHK ,诊断对象的物理存储
>>-REORGCHK----+-------------------------------+----------------------------------+<<
| |-UPDATE--| | | .-USER------- .--|
'--+-CURRENT-+---STATISTICS--' '-ON TABLE--+-SYSTEM-----+--'
+-ALL--------+
'-table-name-'
在UDB的V8版本中增加了on schema 的选项。
UPDATE STATISTICS:先调用RUNSTATS来对table进行分析,
然后根据分析的统计信息诊断是否需要重组table
CURRENT STATISTICS:使用现有的统计信息诊断是否需要重组table
ON TABLE USER: 当前USER的所有table
ON TABLE SYSTEM:SYSTEM的所有table
ON TABLE ALL: 当前db的所有table
ON TABLE table-name:指定名称的table
我们分析SYSIBM.SYSTABLES,看看具体的执行结果:
db2 => reorgchk update statistics on table SYSIBM.SYSTABLES
执行 RUNSTATS ....
表统计信息:
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 ---
----------------------------------------------------------------------------------------
索引统计信息:
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,该索引与基本表不在相同的序列中。当在表中定义了多个索引时,一个或多个索引
可能被标记为需要 REORG。指定 REORG 顺序的最重要索引。
使用 ORGANIZE BY 子句和相应的维索引定义的表的名称有 '*'
后缀。维索引的基数等价于表的“活动的块数”统计信息。
先来说明一下上面的信息:
CARD:基表中的数据行数
OV(OVERFLOW): 迁移行的数量
NP(NPAGES): 包含数据的page的数量
FP(FPAGES): 该表总共分配的page数量
TSIZE:table的实际数据的大小,以字节为单位。
TABLEPAGESIZE:table所在表空间的page size
F1: 处理溢出行。在溢出行超过总行数的5%时,该报告建议对table进行重组。
F2:处理空间使用率。在TSIZE小于等于该表分配总空间的70%时,该报告建议对table进行重组。
F3:处理空白页。所谓空白页,就是没有数据的页。当table中空白页大于20%时,该报告建议对table进行重组。
LEAF:index上叶节点的数量
LVLS(LEVELS):index级数
ISIZE:index的平均行长。
KEYS:唯一取值的数量
INDEXPAGESIZE:index所在表空间的page size
PCTFREE:index page中预留空间(%)
F4:聚簇因子
F5:为index key预留的空间。这个值应小于50%,否则该报告建议对index进行重组
F6:估算index页的用量,应大于总数的90%,否则该报告建议对index进行重组
F7:伪删除RID的数量。应小于总数的20%,否则该报告建议对index进行重组
F8: 伪空页的数量。应小于总数的20%,否则该报告建议对index进行重组
我们根据报告中REORG的值中有“*”来决定是否对table或index进行数据重组。当然,F1-F8的阀值只是建议值。
第三部分,我们将介绍在DB2中如何对数据进行重组。
posted on 2006-09-14 09:42
水煮三国 阅读(995)
评论(0) 编辑 收藏 所属分类:
Database