db2 runstats和reorg
当数据库里某张表上有大量插入操作时,需要在表上做 RUNSTATS 命令保证数据库掌握准确的统计信息。
当数据库里某张表中的记录变化很大时(大量插入、删除、更新操作),需要在表上做 REORG 和 RUNSTATS 一组维护操作来优化查询的性能。有的表,可能初始化后从来都不会有数据量变化,就只需要做一次维护;有的表,一天之内的变化就很大,每天需要做多次维护。
注意,针对数据库对象的大量操作,如反复地删除表,存储过程,会引起系统表中数据的频繁改变,在这种情况下,也要考虑对系统表进行REORG操作。
一个完整的 REORG 表的过程应该是由下面的步骤组成的:
RUNSTATS -> REORGCHK -> REORG -> RUNSTATS -> BIND 或 REBIND
0 执行下面命令前要先连接数据库
1 RUNSTATS
由于在第二步中 REORGCHK 时可以对指定的表进行 RUNSTATS 操作(在 REORGCHK 时指定 UPDATE STATISTICS),所以第一步是可以省略的。如果知道哪些特点的表有数据变化,又可以只执行第一步而省略第二步。
如果表名为 DB2INST1.STAFF,表上有索引,可以执行下面的 RUNSTATS 操作:
db2 runstats on table db2inst1.staff with distribution and detailed indexes all
2 REORGCHK
REORGCHK是根据统计公式计算表是否需要重整。
对于每个表有3个统计公式,对索引有5个统计公式(版本8),如果公式计算结果该表需重整,在输出的 REORG 字段中相应值为*,否则为-。
如果数据库中数据量比较大,在生产系统上要考虑 REORGCHK 的执行时间可能较长,需安排在非交易时间执行。
可以分为对系统表和用户表两部分分别进行 REORGCHK:
1) 针对系统表进行REORGCHK
db2 reorgchk update statistics on table system
使用 UPDATE STATISTICS 参数指定数据库首先执行 RUNSTATS 命令。
2) 针对用户表进行 REORGCHK
db2 reorgchk update statistics on table user
根据统计公式的计算结果(是否有 *),考虑是否必要对表进行 REORG。注意,某些小表的结果可能由于统计信息过少而不准确。
3 REORG TABLE
执行 REORG 可以考虑分为表上有索引和没有索引两种情况:
1) 如果表上有索引
如表名为 DB2INST1.STAFF,索引名为 DB2INST1.STAFF,
REORG 表:
db2 reorg table db2inst1.staff index db2inst1.istaff use tempspace1
建议 REORG 时可以使用USE参数指定数据重排时使用的临时表空间。如果不指定, REORG 工作将会在表所在表空间中原地执行。
如果表上有多个索引,INDEX 参数值请使用最为重要的索引名。
REORG 索引:
db2 reorg indexes all for table db2inst1.staff
2) 如果表上没有索引
如表名为DB2INST1.STAFF, SYSIBM.SYSTABLES
db2 reorg table db2inst1.staff use tempspace1
db2 reorg table sysibm.systables use tempspace1
4 RUNSTATS
参见步骤 1。
5 (可选) 上面命令完成后可以重复第二步,检查 REORG 的结果,如果需要,可以再次执行 REORG 和 RUNSTATS 命令。
6 BIND 或 REBIND
RUNSTATS 命令运行后,应对数据库中的 PACKAGE 进行重新联编,简单地,可以使用 db2rbind 命令来完成。
例如,如果数据库名为 SAMPLE,执行:
db2rbind sample -l db2rbind.out
原文链接:http://zoroaster.itpub.net/post/29214/275626
db2 runstats和reorg的更多相关文章
- DB2 runstats和reorg操作
[db2inst1@xifenfei ~]$ db2 connect to xff Database Connection Information Database server ...
- DB2 runstats、reorgchk、reorg 命令
runstats.reorgchk.reorg 1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2 ...
- DB2 runstats、reorgchk、reorg 命令【转载】
1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效 ...
- DB2日常维护——REORG TABLE命令优化数据库性能
一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误重复发生. 由于DB2使用CBO作为数据库的优化器,数据库对象的状 ...
- DB2日常维护——REORG TABLE命令优化数据库性能(转)
[转]DB2日常维护——REORG TABLE命令优化数据库性能 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误 ...
- [转]DB2中需要REORG操作的几种情况
问题: 在DB2数据库中,修改完表的结构时,是否需要对表做一个reorg操作才能使表的状态恢复正常? 答:有以下4种操作,需要对表做reorg操作 1. SET DATA TYPE altered-d ...
- db2 reorg runstats rebind具体操作
db2 reorg runstats rebind具体操作 #reorg table db2 -x "select 'reorg table '||rtrim(tabschema)||'.' ...
- db2 reorg详解
reorgchk,检查table index 是否需要重组.reorg 重组,重新放置数据位置.runstats 统计信息,可以优化查询器 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作, ...
- Runstats,Reorgchk,Reorg,Rebind
Runstats:收集统计信息,为DB2优化器提供最佳路径选择.runstats命令只能针对单表执行.命令格式:db2 runstats on table schema.tabnamerunstats ...
随机推荐
- 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)
1:由于针对特定的前后台交互用到的知识总结,所以不大量贴代码,主要给出思路,方便自己以后脑补和技术总结,当然也希望可以帮助到别人. 后台Json和其他格式转化,之前总结过Json和对象,集合,字符串的 ...
- 【BZOJ1417】Pku3156 Interconnect
题解: 比较简单的一道题 显然我们只需要知道每个联通块的大小就可以了 然后发现x1+xn=30 其中xi<=xi+1的状态只有5000 所以直接记忆化搜索就可以了 emm原来map还可以映射ve ...
- [转]PO BO VO DTO POJO DAO概念及其作用(附转换图)
来源:http://www.blogjava.net/vip01/archive/2013/05/25/92430.html J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候 ...
- 【转】android:paddingLeft与android:layout_marginLeft的区别
http://www.blogjava.net/anchor110/articles/342206.html 当按钮分别设置以上两个属性时,得到的效果是不一样的. android:paddingLef ...
- ftp弱密码案例
- shell判断文件是否为空
[[ `cat a.log |wc -l` -eq 0 ]] && echo "file is empty"
- Codeforces 911F Tree Destruction
Tree Destruction 先把直径扣出来, 然后每个点都和直径的其中一端组合, 这样可以保证是最优的. #include<bits/stdc++.h> #define LL lon ...
- 修改注册表.exe的文件目录
文件打开方式不能选择默认打开文件 cmd >regedit 以sublime_text为例 HKEY_CLASSES_ROOT/Applications/sublime_text.exe/she ...
- js去掉前后空格
//去前后空格 data=data.replace(/(^\s*)|(\s*$)/g, "");
- kafka工作流程| 命令行操作
1. 概述 数据层:结构化数据+非结构化数据+日志信息(大部分为结构化) 传输层:flume(采集日志--->存储性框架(如HDFS.kafka.Hive.Hbase))+sqoop(关系型数 ...