update tmp_1 a set sfxz='是' where exists(select 1 from tmp_2  where instr(a.addr,b.addr_all)>0);
commit;a,b表数据都是在二十万左右,因为执行很慢,被killed ,优化解决办法,说是使用 forall

解决方案 »

  1.   

    update tmp_1  set sfxz='是' 
    where 主键 in (select a.主键 from tmp_1 a,tmp_2 b where instr(a.addr,b.addr_all)>0);
      

  2.   

    tmp_1和tmp_2只依靠instr(a.addr,b.addr_all)>0这个条件关联,可以产生的组合是20万乘以20万,就是400亿,这是无法出来结果的,增加一个两表关联的条件,减少关联的组合数量才可以。