如何使用REORG TABLE命令优化数据库性能?
(2009-06-20 21:14:34)
标签:
db2runstatreorg杂谈 |
分类: 数据库 |
发表于: 2004.08.25 10:11
分类: DB2数据库
出处: http://bpmfhu.itpub.net/post/47/315
---------------------------------------------------------------
总结了一下REORG的操作经验
当数据库里某个表中的记录变化量很大时,需要在表上做REORG操作来优化数据库性能。
值得注意的是,针对数据库对象的大量操作,如反复地删除表,存储过程,会引起系统表中数据的频繁改变,在这种情况下,也要考虑对系统表进行REORG操作。
由于DB2使用CBO作为数据库的优化器,数据库对象的状态信息对数据库使用合理的ACCESS PLAN至关重要。
一个完整的REORG表的过程应该是由下面的步骤组成的:
RUNSTATS
0
1
由于在第二步中REORGCHK时可以对指定的表进行RUNSTATS操作(在REORGCHK时指定UPDATE
2
REORGCHK命令的语法如下:
>>-REORGCHK----+----------------------------+------------------->
>-----+---------------------------+----------------------------><
REORGCHK是根据统计公式计算表是否需要重整。
对于每个表有3个统计公式,对索引有3个统计公式(版本8开始有5个公式),如果公式计算结果该表需重整,在输出的REORG字段中相应值为*,否则为-。
如果数据库中数据量比较大,在生产系统上要考虑REORGCHK的执行时间可能较长,需安排在非交易时间执行。
可以分为对系统表和用户表两部分分别进行REORGCHK:
1)
db2
使用UPDATE
2)
db2
下面是执行的部分结果
db2
执行
表统计信息:
F1:
F2:
F3:
SCHEMA
----------------------------------------------------------------------------------------
DB2INST1

加载中…