UPDATE inv_master 
set limit_flag='Y'
where  limit_flag = 'N';其中inv_master表中有10万条数据,符合条件的有158条
更新速度特别慢,是为什么呢?

解决方案 »

  1.   

    查下是不是表锁住了,表锁住了的话,要先删session
    这个数据量比较小,应该很快就更新了的。
      

  2.   

    update大一点的表示时很慢的,不过10万条应该不至于太慢的。
    一般遇到数据量比较大的表更新时,我都采用如下2种方法。
    1. 使用rowid更新
    update inv_master a
       set a.limit_flag='Y'
     where a.rowid=(select b.rowid from inv_master b and b.limit_flag = 'N')
    ;
    2. 建立一个同样结构的临时表,然后插入临时表,之后把原表删除掉,临时表改名为原表