`
onlyor
  • 浏览: 377603 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

DB2 runstats、reorgchk、reorg 命令

    博客分类:
  • db2
 
阅读更多


    
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

分享到:
评论

相关推荐

    完整的REORG表的过程

    REORGCHK 命令是 db2 中用于检查表是否需要重组的命令。该命令可以返回表的统计信息,并建议是否需要对表进行重组。REORGCHK 命令的语法如下: REORGCHK [UPDATE STATISTICS | CURRENT STATISTICS] [ON TABLE [ALL ...

    DB2 数据库常用命令

    `REORG`和`REORGCHK`命令是DB2数据库维护的重要组成部分,它们用于优化数据库的物理存储结构。`REORG`命令可以重新组织数据库表和索引的物理布局,消除碎片,减少I/O操作,从而提升数据库性能。而`REORGCHK`则用于...

    DB2数据库管理最佳实践笔记-10日常运维 (2).pdf

    本文主要围绕两个关键工具——Runstats和Reorg,以及它们在提升DB2性能中的作用进行深入讲解。 1. **Runstats**:Runstats是一个用于收集数据库对象(如表和索引)统计信息的工具。这些信息为DB2优化器提供决策依据...

    关于数据库DB2 常用命令

    RUNSTATS -&gt; REORGCHK -&gt; REORG -&gt; RUNSTATS -&gt; BIND或REBIND 0 执行下面命令前要先连接数据库 1 RUNSTATS 由于在第二步中REORGCHK时可以对指定的表进行RUNSTATS操作(在REORGCHK时指定UPDATE STATISTICS),...

    DB2数据库管理最佳实践笔记-10日常运维 (2).docx

    DB2数据库管理系统在日常运维中,有几个关键工具对于保持高效性能至关重要,包括Runstats、Reorg、Reorgchk和Rebind。这些工具协同工作,确保数据库的优化器能够做出最优的数据访问决策。 1. Runstats:Runstats是...

    DB2数据库管理最佳实践笔记-10日常运维.docx

    本文将深入探讨DB2中的Runstats、Reorg、Reorgchk和Rebind工具的使用,以提升数据库的性能和效率。 1. Runstats Runstats的主要作用是收集统计信息,帮助DB2优化器选择最佳的数据访问路径。这些统计信息包括表和...

    DB2操作指南及命令大全 .doc

    - **命令**: `db2runstats on table tb1` - **作用**: 更新表上的统计信息,帮助优化查询计划。 - **示例**: 更新`tb1`表上的统计信息。 **42. 备份数据库test** - **命令**: `db2backup db test` - **作用**: 创建...

    DB2数据库管理最佳实践笔记-10日常运维.pdf

    在日常运维中,定期执行Runstats、Reorg和Rebind是保持DB2数据库高效运行的关键步骤。正确地收集和使用这些工具能够显著提升查询性能,减少资源浪费,确保数据库系统的稳定性和可靠性。在实践中,应根据数据库的规模...

    DB2性能调优资料,解决SQL执行慢的问题

    首先,我们要了解REORG 和 REORGCHK以及RUNSTATS这三种DB2命令,它们在数据库维护中起着至关重要的作用。 1. **REORG**: 这个命令用于重新组织数据库对象,如表、索引等,以优化物理存储结构。当数据发生大量插入、...

    无忧IT_DB2常用命令

    - **检查和重组**:`db2 reorgchk`和`db2 reorg table &lt;表名&gt;`用于检查和重组表以优化性能。 - **更新统计信息**:`db2 runstats on table &lt;表名&gt;`收集表的统计信息以改进查询优化。 - **备份和恢复**:`db2 ...

    IBM-DB2操作指令

    37. **更新统计信息**:`db2 runstats on table tb1` 更新`tb1`表的统计信息,帮助优化查询计划。 38. **备份数据库**:`db2 backup db test` 备份名为`test`的数据库,确保数据安全。 掌握这些基本的DB2操作指令...

    DB2上机操作指令指南.doc

    39. **更新统计信息**:`db2 runstats on table tb1`收集表`tb1`的统计信息,优化查询性能。 40. **备份数据库**:`db2 backup db test`对数据库`test`进行备份。 41. **恢复数据库**:`db2 restore db test`从备份...

    DB2上机操作指令指南.

    更新`tb1`表的统计信息,`db2 runstats on table tb1`。 39. **备份数据库**: 备份数据库`test`,使用`db2 backup db test`。 40. **恢复数据库**: 恢复数据库`test`,输入`db2 recover db test`。 以上就是...

    Itrenzheng IBM DB2 000-701认证题库

    ### Itrenzheng IBM DB2 ...REORGCHK 命令用于检查表或索引分区是否需要进行重组织(REORG)操作。它会显示有关表的物理存储结构的状态信息,如碎片率、空间利用率等,以便管理员决定是否需要执行重组织操作来优化性能。

Global site tag (gtag.js) - Google Analytics