DB2 runstats、reorgchk、reorg 命令
runstats、reorgchk、reorg
1、runstats
runsats可以搜集表的信息,也可以搜集索引信息。作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效果更好。
runstats on table <tbschema>.<tbname> 收集表 <tbname> 的统计信息。表名必须是用 <dbschema> 全限定的。
2、reorg
A、 reorg table <tbschema>.<tablename> 通过重构行来消除“碎片”数据并压缩信息,对表进行重组。表名必须是用 <dbschema> 全限定的。
B、
reorg还有一个功能就是可以将表中的数据按照某个索引关键字的顺序排列,从而可以减少某些查询I/O的数量。
执行REORG可以考虑分为表上有索引和没有索引两种情况:
a.如表名为DB2INST1.STAFF,索引名为DB2INST1.ISTAFF
reorg table db2inst1.staff index db2inst1.istaff use tempspace1
b.建议REORG时使用USE参数指定数据重排时使用的临时表空间,否则,REORG工作将会
在表所在表空间中原地执行.如果表上有多个索引,INDEX参数值请使用最为重要的索
引名.
c.表上没有索引:
reorg table db2inst1.staff use tempspace1
reorg table sysibm.systables use tempspace1
http://weiruan85.javaeye.com/blog/317520
3、
让db2系统定时runstats、reorg
Q:定期runstats、reorg
A:在db2 v8.2以上可以使用 CALL SYSPROC.ADMIN_CMD来实现,
这里主要讲在v8.2以前的版本中利用shell或者批处理来实现同样的功能
因为在以前的版本中存储过程中是不能使用DDL操作语句的!(这点对于oracle刚转过来的人来说很是郁闷的)
然后可以利用db2自带的配置自动维护来做,但是java做的东西比较让人感觉头痛!尤其是速度和莫名的错误!
本代码使用操作系统的脚本来实现这部分功能!
1.windows下
如下:
下一个cmd文件s.cmd
内容如下:
db2 connect to ccp_dm
db2 -x "select 'runstats on table '||rtrim(tabschema)||'.'||tabname||' on all columns' from sysstat.tables where card=-1">tab.sql
db2 -f tab.sql
--其中where后的条件可以修改
然后就是定制任务:用windos的定制任务!每周或者每月运行,这个就不讲了哈!
这部分经测试,通过!
不过能,这里只提到了runstats,对于reorg同理也可以实现!
http://myfriend2010.itpub.net/post/29012/386779
4、reorgchk
C:\Documents and Settings\Administrator>db2 reorgchk update statistics on table all
正在执行 RUNSTATS ....
reorgchk on table all 确定是否需要对表进行重组。这对于对所有表自动执行 runstats很有用。
1) 针对系统表进行REORGCHK
db2 reorgchk update statistics on table system
使用UPDATE STATISTICS参数指定数据库首先执行RUNSTATS命令。
2) 针对用户表进行REORGCHK
db2 reorgchk update statistics on table user
下面是执行的部分结果
db2 reorgchk update statistics on table user
执行 RUNSTATS ....
db2 reorgchk 命令是最重要的、也是经常被忽略的 DB2 调整命令之一。 db2 reorgchk 命令被忽略是因为它不是一个一次性调整项。由于更新是在 DB2 数据库上执行的,因此关于表的统计信息将不会是最新的。db2 reorgchk 命令更新 DB2 优化器所使用的重要统计信息。建议在大约每 10,000 次更新后重复 db2 reorgchk 命令。
在运行 db2 reorgchk 命令之前,您应该停止 IBM Directory Server 以防止在命令执行的同时发生任何 DB2 查询或更新。虽然这是可选的,但数据库查询和更新可能会非常缓慢并有可能超时。
请注意,运行 db2 reorgchk 命令所带来的性能益处是即时的。不必在 db2 reorgchk 命令之后重新启动 DB2。
除了提高性能之外,db2 reorgchk 命令还报告关于数据库中所有表和索引的统计信息。db2 reorgchk 命令还报告关于 DB2 表的组织的统计信息。
http://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1351-00/zh_CN/HTML/am51_perftune66.htm
DB2 runstats、reorgchk、reorg 命令的更多相关文章
- db2 runstats和reorg
当数据库里某张表上有大量插入操作时,需要在表上做 RUNSTATS 命令保证数据库掌握准确的统计信息. 当数据库里某张表中的记录变化很大时(大量插入.删除.更新操作),需要在表上做 REORG 和 R ...
- DB2 runstats和reorg操作
[db2inst1@xifenfei ~]$ db2 connect to xff Database Connection Information Database server ...
- DB2日常维护——REORG TABLE命令优化数据库性能
一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误重复发生. 由于DB2使用CBO作为数据库的优化器,数据库对象的状 ...
- DB2日常维护——REORG TABLE命令优化数据库性能(转)
[转]DB2日常维护——REORG TABLE命令优化数据库性能 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误 ...
- DB2 runstats、reorgchk、reorg 命令【转载】
1.runstats runsats可以搜集表的信息,也可以搜集索引信息.作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效 ...
- db2 查看进程 db2中的常用命令及使用方法
一 高(重要度) 1 启动一个db 2实例使用: net start instanceName 2 停止一个db 2实例使用: net stop instanceName 3 启动配置助手: db2= ...
- DB2常用运维命令
DB2是IBM公司推出关系型数据库管理系统.主要应用于银行.医院等大型机构.现今DB2主要包含以下三个系列:DB2 for Linux, UNIX and Windows(LUW) . DB2在Lin ...
- DB2日常维护常用命令
1.检查是否有僵尸进程 ps -emo THREAD | grep -i Z | grep -i 实例名 2.处理死锁 --第一步:查看所有死锁 db2 get snapshot for lock ...
- [转]DB2中需要REORG操作的几种情况
问题: 在DB2数据库中,修改完表的结构时,是否需要对表做一个reorg操作才能使表的状态恢复正常? 答:有以下4种操作,需要对表做reorg操作 1. SET DATA TYPE altered-d ...
随机推荐
- HDNOIP201405杨辉三角
2016.1.27 试题描述 杨辉三角是形如如下的数字三角形: 1 1 1 1 2 1 …… 现在想求出杨辉三角第N行的N个数中,有多少个数能被给定的质数p整除. 输入 一行两个空格隔 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)
[原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...
- GMM的EM算法实现
转自:http://blog.csdn.net/abcjennifer/article/details/8198352 在聚类算法K-Means, K-Medoids, GMM, Spectral c ...
- 对于旅游业的手机app的分析
对旅游行业的手机app的测试及分析 随着收入水平的提高,旅游已成为人们的惯常需求.或是为了增长见闻,感悟人生:又或者是愉悦感情,消闷解愁:还有的是为了体验生活,追求情调,同时锻炼身体.当然,旅游的目的 ...
- Xenko基础API笔记2-Enum Keys按键
Name Description A The 'a' key. Add The 'add' key. Apps The 'apps' key. Attn The 'attn' key. B The ...
- linux mail 使用外部邮箱地址发邮件
centos 61.系统yum安装的mailx会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置麻烦,而且会带来不必要的资源占用.通过修改配置文件可以使 ...
- Leetcode5:Longest Palindromic Substring@Python
Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...
- VUE 入门基础(9)
十一,深入响应式原理 声明响应式属性 由于Vue不允许动态添加根级响应式属性,所以你必须在初始化实例钱声明根级响应式属性,哪怕只有一个空值. var vm = new Vue({ data:{ // ...
- Delphi控制Excel输出上标示例
直接上代码吧,这个示例在Excel中输出一个M2: unit FfrmMain; interface uses Winapi.Windows, Winapi.Messages, System.SysU ...