转)DB2日常维护——REORG TABLE命令优化数据库性能 2009-04-24 16:18 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常、安全、高效运行,防止一些错误重复发生
由于 DB2使用 CBO作为数据库的优化器,数据库对象的状态信息对数据库使用合理的 ACCESS PLAN至关重要
DB2 优化器使用目录统计信息来确定任何给定查询的最佳访问方案
如果有关表或索引的统计信息已过时或者不完整,则会导致优化器选择不是最佳的方案,并且会降低 执行查询的速度
当数据库里某个表中的记录变化量很大时,需要在表上做 REORG操作来优化数据库性能 一、完整的 REORG表的过程 值得注意的是,针对数据库对象的大量操作,如反复地删除表,存储过程,会引起系统表中数据的频繁改变,在这种情况下,也要考虑对系统表进行 REORG操作
一个完整的 REORG表的过程应该是由下面的步骤组成的: RUNSTATS -> REORGCHK -> REORG -> RUNSTATS -> BIND或 REBIND 注: 执行下面命令前要先连接数据库 1 RUNSTATS 由于在第二步中 REORGCHK时可以对指定的表进行 RUNSTATS操作(在REORGCHK时指定 UPDATE STATISTICS),所以第一步事实上是可以省略的
2 REORGCHK 在对表数据进行许多更改之后,逻辑上连续的数据可能会位于不连续的物理数据页上,在许多插入操作创建了溢出记录时尤其如此
按这种方式组织数据时,数据库管理器必须执行其他读操作才能访问顺序数据
另外,在删除大量行后,也需要执行其他的读操作
表重组操作会整理数据碎片来减少浪费的空间,并对行进行重新排序以合并溢出记录,从而加快数据访问速度并最终提高查询性能
还可以指定根据特定索引来重新排