AA 表二十几万记录
BB 表一万多记录update A set F1=B.F1 from AA A,BB B
where A.F2 like '%'+B.F2+'%'
执行要差不多2个钟大家有什么好的处理方法?

解决方案 »

  1.   

    可以给b.f2,b.f1建个索引看看,可能会快一点点,不过效果应该不会很明显.在b.f2,f1  a.f2上建索引,语句改为where  charindex(b.f2,a.f2)>0 试试
      

  2.   

    --这样试试update   A   
    set   F1=B.F1   
    from   AA   A join BB   B 
    on charindex(B.f2,A.f2)> 0 
      

  3.   

    update   A   
    set   F1=B.F1   
    from   AA   A join BB   B 
    on patindex('%'+B.f2+'%',A.f2)> 0 
      

  4.   

    update   A   
    set   A.F1=B.F1   
    from   AA   A inner join BB   B on charindex(B.f2,A.f2)> 0 
      

  5.   

    切断网络,KILL其他进程,把所有的资源都给你的服务用.
    如果数据跑了很长时间了,建议收缩一下,重建一个索引
    才20万条数据,没索引也不该这么慢2个钟头,两个小孩子都生下来了
      

  6.   

    update   A   set   F1=B.F1   from   AA   A,BB   B 
    where   A.F2   like   '%'+B.F2+'%' 这个语句肯定慢.查a的f2包含b的f2,共二十几万*一万 = 两百多万.
      

  7.   

    原有索引;
    改成charindex也好不了多少!