1000多条语句如下.
UPDATE DHR202 SET D17_1='' , D17_2='' , D17_3='' , D17_4='' , D17_5='' , D17_6='' , strwork1='' , strwork2='' , strwork3='' , endwork1='' , endwork2='' , endwork3='' , have_DHR017='N' , have_time_ok='N' , have_insert_time='N' , have_checkok='N' , not_in_work='' WHERE cocode='S' and absdate ='20100708' and empno='08050057' 差的都是absdate和empno不一致.DHR202 大概90w条数据.但是更新要起码10分钟以上.
我更新一条的时候SQL developer 显示0.68秒左右.
请问该怎么找出问题并解决呢?
UPDATE DHR202 SET D17_1='' , D17_2='' , D17_3='' , D17_4='' , D17_5='' , D17_6='' , strwork1='' , strwork2='' , strwork3='' , endwork1='' , endwork2='' , endwork3='' , have_DHR017='N' , have_time_ok='N' , have_insert_time='N' , have_checkok='N' , not_in_work='' WHERE cocode='S' and absdate ='20100708' and empno='08050057' 差的都是absdate和empno不一致.DHR202 大概90w条数据.但是更新要起码10分钟以上.
我更新一条的时候SQL developer 显示0.68秒左右.
请问该怎么找出问题并解决呢?
都可以用批量更改的把它放入一个list中,批量修改
唉~~~
循环遍历的,而且还没有用到ORACLE的SQL缓存——所以ORACLE每次都要解析SQL语句,造成资源的浪费。
你在程序里面没有用到优化技巧啊~
不过程序里面有些技术是不能用到SQL 缓存的。批量更新,其实可以考虑,毕竟是基于集合的思想,速度可能会提高——例如update tabl1 set .... from table2,table3 where ...