Reorgchk:重组检查,是否需要重组。
判断表或索引是否需要重组,有2种方法:
1.通过reorgchk工具
  reorgchk工具利用8个公式(3个表公式,5个索引公式),如果表统计结果F1,F2或F3标记为*,则改表需要重组。如果索引统计结果F4-F8有*标记,则索引需要重组。

db2 reorgchk on schema SYSTOOLS
Table statistics:
F1: * OVERFLOW / CARD <
F2: * (Effective Space Utilization of Data Pages) >
F3: * (Required Pages / Total Pages) >
Index statistics:
F4: CLUSTERRATIO or normalized CLUSTERFACTOR >
F5: * (Space used on leaf pages / Space available on non-empty leaf pages) > MIN(, ( - PCTFREE))
F6: ( - PCTFREE) * (Amount of space available in an index with one less level / Amount of space required for all keys) <
F7: * (Number of pseudo-deleted RIDs / Total number of RIDs) <
F8: * (Number of pseudo-empty leaf pages / Total number of leaf pages) <

2.通过sysibmadm.snaptab管理视图(只能检查表,索引的检查仍需要reorgchk)。(需要打开实例监控器开关 update dbm cfg using dft_mon_table on,重启实例生效)

如果发现overflow_access与rows_read比例高于3%,则需要对表进行重组。

db2 "select substr(TABNAME,1,18) as TABNAME,ROWS_READ,OVERFLOW_ACCESSES from sysibmadm.snaptab where (ROWS_READ>999) and ((OVERFLOW_ACCESSES*100)/(ROWS_READ+1)>3)"

TABNAME            ROWS_READ            OVERFLOW_ACCESSES   
------------------ -------------------- --------------------
T1           10004        3864

对所有表和索引执行reorgchk:

db2 reorgchk current statistics on table all

调用函数对所有表或索引执行reorgchk:

db2 "call SYSPROC.REORGCHK_TB_STATS(‘T‘,‘ALL‘)"| grep "*" | awk ‘{print $, $}‘ >  reorgchk.out
db2 "call SYSPROC.REORGCHK_IX_STATS(‘T‘,‘ALL‘)"| grep "*" | awk ‘{print $, $}‘ >> reorgchk.out

------------------------------------------------------------------

reorg:重组,减少表和索引在物理存储上的碎片。
reorg重组分为表重组和索引重组。表重组支持:离线重组和在线重组。
离线表重组:
也称classic reorg,支持allow read access(默认选项),表示重组时其他应用可以读取数据。allow no access选项,表示重组过程中不允许访问改表。
离线表重粗采用影子拷贝方法,即创建一份原始数据的副本,在影子拷贝中进行数据reorg,reorg结束后替换源表数据。默认情况下,数据拷贝会在原表空间进行,也可以指定USE选项,在指定临时表空间进行。reorg过程中,会记录事务日志,当出现异常时可以通过日志进行恢复。离线reorg最多包含4个阶段:
a.scan-sort:根据reorg指定的索引对表数据进行扫描,排序 (如果没指定索引,表数据重组时不关心顺序)
b.build:根据第一阶段的结果进行表数据构建
c.replace:用于新数据替换原有数据
d.index rebuild:基于新数据,重建索引

可以用多种方式检查reorg是否完成:

1.通过sysibmadm.snaptab检查(要求dft_mon_table实例监控器开关打开)

db2 "select substr(tabname,1,15) as tabname,substr(tabschema,1,15) as tabschema,substr(reorg_type,1,50) as reorg_type,reorg_status,reorg_completion,dbpartitionnum from sysibmadm.snaptab_reorg"

TABNAME         TABSCHEMA       REORG_TYPE                                         REORG_STATUS REORG_COMPLETION DBPARTITIONNUM
--------------- --------------- -------------------------------------------------- ------------ ---------------- --------------
STAFF           DB2INST2        RECLUSTER+OFFLINE+ALLOW_READ+TABLESCAN+DATAONLY    COMPLETED    SUCCESS                       0

2.通过db2 get snapshot for tables on sample进行reorg监控:

Reorg Index       =
Reorg Tablespace =
Start Time = // ::32.574580
Reorg Phase = - Index Recreate
Max Phase =
Phase Start Time = // ::33.026445
Status = Completed
Current Counter =
Max Counter =
Completion =
End Time = // ::33.315408

3.通过db2pd reorg选项获得当前正在执行和近期完成的重组信息:

db2pd -d sample -reorg
Database Partition -- Database SAMPLE -- Active -- Up days :: -- Date ---12.28.09.413756
Table Reorg Information:
Address TbspaceID TableID PartID MasterTbs MasterTab TableName Type IndexID TempSpaceID
0x00007F98399BA328 n/a n/a n/a STAFF Offline
Table Reorg Stats:
Address TableName Start End PhaseStart MaxPhase Phase CurCount MaxCount Status Completion
0x00007F98399BA328 STAFF // :: // :: // :: IdxRecreat Done

4.通过list history reorg all for sample获得表或索引重组信息:

 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
-- --- ------------------ ---- --- ------------ ------------ --------------
G T F S0000001.LOG S0000002.LOG
----------------------------------------------------------------------------
Table: "DB2INST2"."STAFF"
----------------------------------------------------------------------------
Comment: REORG INDEX USE
Start Time:
End Time:
Status: A
----------------------------------------------------------------------------
EID:

db2 Reorgchk:重组检查,是否需要重组的更多相关文章

  1. db2 reorgchk

    db2 reorgchk 命令是最重要的.也是经常被忽略的 DB2 调整命令之一. db2 reorgchk 命令被忽略是因为它不是一个一次性调整项.由于更新是在 DB2 数据库上执行的,因此关于表的 ...

  2. DB2 runstats、reorgchk、reorg 命令

    runstats.reorgchk.reorg 1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2 ...

  3. DB2 runstats、reorgchk、reorg 命令【转载】

    1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效 ...

  4. 转自:Tsihang 三层网络设备对于IP报文的分片和重组处理原理

    三层网络设备对于IP报文的分片和重组处理原理 对于网络分片,我一年前就想整理出来,虽然说网络上的资料很多,但是真正掌握精髓的除非真正做过分片程序,不然很难将协议栈整体联系起来理解.这篇文章,包括设计分 ...

  5. TCP系列26—重传—16、重组包

    一.介绍 在TCP重传的时候,并没有限制TCP只能重传与初传完全相同的报文段大小,TCP允许执行重组包(repacketization),发送一个更大的TCP报文段,进而增加性能.TCP在重传时候允许 ...

  6. db2日常维护

    一. DB2日常维护操作 1.数据库的启动.停止.激活 db2 list active databases db2 active db 数据库名 db2start --启动 db2stop [forc ...

  7. db2常用命令(1)

    DB2常用命令   1.启动实例(db2inst1):实例相当于informix中的服务 db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) d ...

  8. DB2日常维护——REORG TABLE命令优化数据库性能

    一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误重复发生. 由于DB2使用CBO作为数据库的优化器,数据库对象的状 ...

  9. DB2导入导出 学习笔记

    db2pd -osinfodb2mtrk -i -d (for aix)db2 get dbm cfg show detaildb2 get db cfg show detaildb2 get sna ...

随机推荐

  1. Zabbix agent 在windows上安装部署

    Zabbix agent 在windows上安装部署 1.下载与解压 地址: http://www.zabbix.com/downloads/2.4.4/zabbix_agents_2.4.4.win ...

  2. Linux系统如何将某一程序设置为开机自启动

    文章来源:百度知道. Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍L ...

  3. 【SqlServer】SqlServer的游标使用

    什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据 ...

  4. JS前台效果

    最新的在上面 2014年3月3日14:46:46 百分比思路 function fixWidth(percent) { return document.body.clientWidth * perce ...

  5. SNF开发平台WinForm-Grid表格控件大全

    我们在开发系统时,会有很多种控件进行展示,甚至有一些为了方便的一些特殊需求. 那么下面就介绍一些我们在表格控件里常用的方便的控件:   1.Grid表格查询条 Grid表格下拉 3.Grid表格弹框选 ...

  6. KMP算法——从入门到懵逼到了解

    本博文參考http://blog.csdn.net/v_july_v/article/details/7041827 关于其它字符串匹配算法见http://blog.csdn.net/WINCOL/a ...

  7. Communications link failure due to underlying exception异常处理(转)

    最近的一个项目在Hibernate使用C3P0的连接池,数据库为Mysql.开发测试没有问题,在运行中每个一段长的空闲时间就出现异常: java 代码 org.hibernate.exception. ...

  8. [k8s]一些技巧性的yaml和dockerfile-docker学习思路

    我会把一些dockerfile和yaml的技巧性东西不定期搜集到这里 docker学习思路 三部曲: 1,vm会搭建服务 2,docker会跑服务 3,k8s集群会调度该服务 存储 vm1 vm2 共 ...

  9. Socket网络编程--小小网盘程序(1)

    这个系列是准备讲基于Linux Socket进行文件传输.简单的文件传输就是客户端可以上传文件,可以从服务器端下载文件.就这么两个功能如果再加上身份验证,就成了FTP服务器了,如果对用户的操作再加上一 ...

  10. ECMAScript 6 入门之新的数据类型Symbol

    1.Symbol,一个每次创建都不一样的值 Symbol undefined null Boolean String Number Object let c=Symbol("这是一个Symb ...