Runstats,Reorgchk,Reorg,Rebind
Runstats:收集统计信息,为DB2优化器提供最佳路径选择。
runstats命令只能针对单表执行。命令格式:db2 runstats on table schema.tabname
runstats选项默认为allow write access,DB2在runstats的表上加IN锁,可以读取和修改表数据。指定allow read access会在runstats的表上加S锁,只能读取数据,无法修改。
runstats统计结果存在系统表中,syscat.tables保存表统计信息,syscat.indexes保存索引统计信息。
可以查看syscat.tables的stat_time字段,表是否有收集统计信息。
db2 "select substr(tabname,1,20) as tabname,stats_time from syscat.tables where stats_time is null"
另外可以使用db2look的mimc选项抽取统计数据。这样可以在测试机器上模拟生产环境的数据,进行测试。
db2look -d sample -m > db2look_stat.out
---------------------------------------------------------------------------------
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
对所有表和索引执行reorgchk:
db2 reorgchk current statistics on table all
调用函数对所有表或索引执行reorgchk:
db2 "call SYSPROC.REORGCHK_TB_STATS('T','ALL')"| grep "*" | awk '{print $1, $2}' > reorgchk.out
db2 "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
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:
Runstats,Reorgchk,Reorg,Rebind的更多相关文章
- DB2 runstats、reorgchk、reorg 命令
runstats.reorgchk.reorg 1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2 ...
- DB2 runstats、reorgchk、reorg 命令【转载】
1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效 ...
- db2 Reorgchk:重组检查,是否需要重组
Reorgchk:重组检查,是否需要重组.判断表或索引是否需要重组,有2种方法:1.通过reorgchk工具 reorgchk工具利用8个公式(3个表公式,5个索引公式),如果表统计结果F1,F2或 ...
- 【知识必备】内存泄漏全解析,从此拒绝ANR,让OOM远离你的身边,跟内存泄漏say byebye
一.写在前面 对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针:而对于java来说,就是new出来的Object放在Heap上无法被GC回收:而这里就把我之前的一篇内存泄漏的总 ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 阿里云学生优惠Windows Server 2012 R2安装IIS,ftp等组件,绑定服务器域名,域名解析到服务器,域名备案,以及安装期间错误的解决方案
前言: 这几天终于还是按耐不住买了一个月阿里云的学生优惠.只要是学生,在学信网上注册过,并且支付宝实名认证,就可以用9块9的价格买阿里云的云服务ECS.确实是相当的优惠. 我买的是Windows S ...
- 在知乎上看到 Web Socket这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错
在知乎上看到这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错,所以推荐给大家,非常值得一读. 作者:Ovear链接:https://www.zhihu.com/que ...
- java使用websocket,并且获取HttpSession,源码分析
转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...
随机推荐
- Adobe Illustrator for Mac(矢量图处理软件)破解版安装
1.软件简介 Adobe Illustrator CC 是 macOS 系统上一款矢量绘图工具,可以说是是业界标准矢量绘图标杆,软件通过形状.色彩.效果及印刷样式,展现您的创意想法.在处理大型复 ...
- C#面试题(转载)
原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. .NET和C#有什么区 ...
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...
- [android开发教程] 一个神奇的Demo 帮你掌握所有android控件
(本文内容来源:http://www.eoeandroid.com/thread-182392-1-1.html 转载请注明出处!) 2.jpg (23.78 KB, 下载次数: 0) 下载附件 ...
- ElasticStack系列之九 & master、data 和 client 节点
在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题. 默认情况下,elasticsearch 集群中每个节点都有成为主节点的资格,也都存 ...
- Asp.Net T4模板生成三层架构
1.T4 Editor安装 T4:根据模板生成文件,例如model等 vs中默认t4模板编码是没有提示和高亮的,需使用以下插件,免费的 https://t4-editor.tangible-engin ...
- Vue+element组合el-table-column表头宽度自定义
[本文出自天外归云的博客园] 需求 1. 某列表头文字内容过长,要对每列表头自定义宽度 2. 表格row的每一column文字不换行,超过列宽则省略,mouseover有提示 3. 对于label做滤 ...
- [转]在Windows上安装RabbitMQ
原文链接 翻译:xiezc 下载服务器 描述 下载 Windows系统安装程序(来自Bintray) 的RabbitMQ的服务器-3.7.4.exe (签名) Windows系统安装程序(来 ...
- centos 6.4 使用epel 源
EPEL是RHEL 的 Fedora 软件仓库,把它添上,你就可以获得 RHEL AS 的高质量.高性能.高可靠性,又需要方便易用(关键是免费)的软件包更新功能.EPEL(Extra Packages ...
- Java知多少(8)类库及其组织结构
Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个包中,随JDK一起发布,称为Java类库或Java API. API(Application Programming Interfac ...