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秒左右.
请问该怎么找出问题并解决呢?

解决方案 »

  1.   

    你用的是什么技术jdbc,hibernate,ibtaits
    都可以用批量更改的把它放入一个list中,批量修改
      

  2.   

    恩.忘了说了.asp.net中.使用List包含起来一次更新的.另外那三个列是主键索引.
      

  3.   

    这么写更新,肯定悲剧啊~~~~
    唉~~~
    循环遍历的,而且还没有用到ORACLE的SQL缓存——所以ORACLE每次都要解析SQL语句,造成资源的浪费。
    你在程序里面没有用到优化技巧啊~
    不过程序里面有些技术是不能用到SQL 缓存的。批量更新,其实可以考虑,毕竟是基于集合的思想,速度可能会提高——例如update tabl1 set .... from table2,table3 where ...