博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
db2 Reorgchk:重组检查,是否需要重组
阅读量:7282 次
发布时间:2019-06-30

本文共 4525 字,大约阅读时间需要 15 分钟。

Reorgchk:重组检查,是否需要重组。

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

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

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 $1, $2}‘ >  reorgchk.outdb2 "call SYSPROC.REORGCHK_IX_STATS(‘T‘,‘ALL‘)"| grep "*" | awk ‘{print $1, $2}‘ >> 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       = 1   Reorg Tablespace  = 1   Start Time        = 08/14/2014 12:19:32.574580   Reorg Phase       = 4 - Index Recreate   Max Phase         = 4   Phase Start Time  = 08/14/2014 12:19:33.026445   Status            = Completed   Current Counter   = 0   Max Counter       = 0   Completion        = 0   End Time          = 08/14/2014 12:19:33.315408

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

db2pd -d sample -reorgDatabase Partition 0 -- Database SAMPLE -- Active -- Up 0 days 02:23:38 -- Date 2014-08-14-12.28.09.413756Table Reorg Information:Address            TbspaceID TableID PartID MasterTbs MasterTab TableName          Type    IndexID    TempSpaceID0x00007F98399BA328 2         15      n/a    n/a       n/a       STAFF              Offline 1          1         Table Reorg Stats:Address            TableName          Start               End                 PhaseStart          MaxPhase   Phase      CurCount   MaxCount   Status  Completion0x00007F98399BA328 STAFF              08/14/2014 12:19:32 08/14/2014 12:19:33 08/14/2014 12:19:33 4          IdxRecreat 0          0          Done    0

  

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

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

 

转载于:https://www.cnblogs.com/dahaoran/p/9327910.html

你可能感兴趣的文章
【C#学习笔记】自我复制
查看>>
Texture lod计算
查看>>
ResultJsonInfo<T>
查看>>
UnicodeString基本操作(Ring3)
查看>>
读取配置
查看>>
自己动手下载Windows 8 的语言包使其可以离线使用
查看>>
漫话web渗透 : xss跨站攻击day1
查看>>
Python学习笔记(三)—第五天,文件读写以及基本的序列化
查看>>
Javascript-蔬菜运算价格
查看>>
2011 Michigan Invitational Programming Contest
查看>>
腾讯的微信小程序开发环境下常用快捷键汇总
查看>>
《统一沟通-微软-实战》-6-部署-1-前端服务器-2-准备基础结构和系统
查看>>
PureFTPD配置指南
查看>>
创建DDL触发器捕捉schema所有对象改变的记录
查看>>
RAC执行root.sh报libcap.so.1: cannot open shared object file
查看>>
解决Lync边缘服务器受限制的外部呼叫
查看>>
neo4j简单学习
查看>>
IOS NSInvocation用法
查看>>
ssh时出现 Agent admitted failure to sign using the key
查看>>
华润三九 感冒灵颗粒10g*9袋/盒【说明书、功效、副作用、价格】 -京东好药师网上药店 这药又涨了1块钱...
查看>>