db2 我先DROP掉一张表,再重建,再LOAD数据进这张表,之后对这个表做UPDATE操作很慢,这是为什么
发布网友
发布时间:2022-04-09 02:51
我来回答
共2个回答
热心网友
时间:2022-04-09 04:21
可能是LOAD之后这个表的统计信息没有更新,你们可以使用REORGCHK或者RUNSTATS命令将此表的统计信息更新一下。 因为DB2执行计划的选择是根据这些统计信息,假如信息没有及时更新,就有可能将索引扫描判断成全表扫描。
热心网友
时间:2022-04-09 05:39
********LOAD有风险,使用需谨慎********
我知道的原因有下面几种:
1)LOAD之后,表出现问题,更新操作没有执行
解决:使用原来的load语句,对此表进行terminate处理(你懂得),然后更新
2)表的数据量很大,update本来就很慢,而且你更新的不只是一个字段,同时又使用到关联语句
解决:咱把需要更新的字段通过select方式达到更新的要求export出来,重新load进去,实现在export时更新(肯定比update快)
3)楼主以前有过对此表类似的update操作,而且很快,那可能是服务器的性能原因。众所周知,月初和周一是系统最忙的时候,你还在数据库上做LOAD操作
4)对表和索引收集统计信息(RUNSTATS),这个是LOAD之后必须做的,也是对大表进行过更新后,必须做的