ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB2表中统计信息收集及数据重组 转

DB2表中统计信息收集及数据重组 转

原创 Linux操作系统 作者:myfriend2010 时间:2019-05-23 08:45:05 0 删除 编辑
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中如何对数据进行重组。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/694276/viewspace-51467/,如需转载,请注明出处,否则将追究法律责任。

上一篇: AIX常用命令
请登录后发表评论 登录
全部评论

注册时间:2018-09-01

  • 博文量
    187
  • 访问量
    127990