天天看点

DB2数据库运行维护

db2提供了runstats命令来手工更新数据库统计信息。在成功执行runstats命令之后,静态sql查询并不会使用最近的数据库统计信息,这是因为静态sql的访问策略在之前执行bind时就已确定,而当时使用的统计信息有可能与现在的并不一致。这时候就需要重新绑定使用静态sql的应用程序,这样查询优化器就可以根据数据库最新统计信息来选择获取数据库的最佳访问策略。但是,对于使用动态sql的应用程序而言,则没有必要进行重新绑定,因为动态sql语句的访问策略是根据统计信息在运行时动态生成的。

  只有当进行显示请求时,对象的统计信息才会在系统目录表中被更新。有以下几种方法可以更新部分或全部统计信息:

使用runstats(运行统计信息,run statistics)命令

使用带有指定的统计信息收集选项的load

对针对一组预先定义的系统目录视图进行操作的sql update 语句进行编码

使用"reorgchk update statistics"命令

记住:批量加载数据之后要运行runstats命令

一次对一张表进行runstats命令:

这个命令将收集该表及其所有索引(基本级别)的统计信息。