欢迎来到天天文库
浏览记录
ID:22679743
大小:96.00 KB
页数:20页
时间:2018-10-30
《db2数据库日常维护-reorgtable》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、转)DB2日常维护——REORGTABLE命令优化数据库性能2009-04-2416:18一个完整的日常维护规范可以帮助DBA理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常、安全、高效运行,防止一些错误重复发生。由于DB2使用CBO作为数据库的优化器,数据库对象的状态信息对数据库使用合理的ACCESSPLAN至关重要。DB2优化器使用目录统计信息来确定任何给定查询的最佳访问方案。如果有关表或索引的统计信息已过时或者不完整,则会导致优化器选择不是最佳的方案,并且会降低执行查询的速度。当数据库里某个表中的记录变化量很大
2、时,需要在表上做REORG操作来优化数据库性能一、完整的REORG表的过程值得注意的是,针对数据库对象的大量操作,如反复地删除表,存储过程,会引起系统表中数据的频繁改变,在这种情况下,也要考虑对系统表进行REORG操作。一个完整的REORG表的过程应该是由下面的步骤组成的:RUNSTATS-> REORGCHK-> REORG-> RUNSTATS->BIND或REBIND注:执行下面命令前要先连接数据库1RUNSTATS 由于在第二步中REORGCHK时可以对指定的表进行RUNSTATS操作(在REORGCHK时指定UPD
3、ATESTATISTICS),所以第一步事实上是可以省略的。2REORGCHK 在对表数据进行许多更改之后,逻辑上连续的数据可能会位于不连续的物理数据页上,在许多插入操作创建了溢出记录时尤其如此。按这种方式组织数据时,数据库管理器必须执行其他读操作才能访问顺序数据。另外,在删除大量行后,也需要执行其他的读操作。表重组操作会整理数据碎片来减少浪费的空间,并对行进行重新排序以合并溢出记录,从而加快数据访问速度并最终提高查询性能。还可以指定根据特定索引来重新排序数据,以便查询时通过最少次数据读取操作就可以访问数据。下列任何因素都可能指示
4、用户应该重组表:1)自上次重组表之后,对该表进行了大量的插入、更新和删除活动。2)对于使用具有高集群率的索引的查询,其性能发生了明显变化。3)在执行RUNSTATS命令以刷新统计信息后,性能没有得到改善。4)REORGCHK命令指示需要重组表(注意:在某些情况下,REORGCHK总是建议重组表,即使在执行了重组后也是如此)。例如,如果使用32KB页大小,并且平均记录长度为15字节且每页最多包含253条记录,则每页具有32700-(15x253)=28905个未使用字节。这意味着大约88%的页面是可用空间。用户应分析REORGCHK的
5、建议并针对执行重组所需的成本平衡利益。5)db.tb_reorg_req(需要重组)运行状况指示器处于ATTENTION状态。此运行状况指示器的集合详细信息描述通过重组可获得好处的表和索引的列表。REORGCHK命令返回有关数据组织的统计信息,并且可以建议您是否需要重组特定表。然而,定期或在特定时间对目录统计信息表运行特定查询可以提供性能历史记录,该记录使用户可以发现可能具有更广性能隐含的趋势。DB2V9.1引入了自动重组功能,可以对表和索引进行自动重组。自动重组通过使用REORGCHK公式来确定何时需要对表进行重组。它会定期评估已
6、经更新了统计信息的表,以便了解是否需要重组。REORGCHK命令的语法如下:. -UPDATESTATISTICS--.>>-REORGCHK--+--------------------+-----------------------------> '-CURRENTSTATISTICS-' .-ONTABLEUSER-----------------.>--+----------------------------
7、---+--------------------------->< '-ON--+-SCHEMA--schema-name---+-'
8、.-USER-------.
9、 '-TABLE--+-SYSTEM-----+-' +-ALL--------+ '-table-name-'下面我们来看一下各个选项的含义:UPDATESTATISTICS:更新
10、表的统计数据,根据该统计数据判断是否需要重组表。CURRENTSTATISTICS:根据当前表统计数据判断是否需要重组表。TABLEtable_name:对单个表进行分析。TABLEALL:对数据库所有的表进行分析。TABLESYST
此文档下载收益归作者所有