今天做这样的一个东西
Update TableA set Id=(select b.Id from TableA a,TableB b where a.Num=b.Num);Update 40w条数据,花了接近10分钟然后做了一条这个
Update TableA set Time=(select b.Time from TableA a,TableB b where a.Id=b.Id);
也是40w...花了10秒钟why...两个Update的过程很相像
是否是第一次Update时Sql Server建立了一个路径之类的东西导致第二次很快?或者能否说说有些什么方法可以提高Update的效率?

解决方案 »

  1.   

    主要取决于Num和ID列上是否建有索引。
    update A
    set
        ID=B.ID
    from
        TableA A,TableB B
    where
        A.Num=B.Num
      

  2.   

    Update   a
    set   a.Id=b.Id 
    from
    TableA   a,TableB   b
    where
    a.Num=b.Num這樣寫效率應該高一點 
      

  3.   

    主要是你的NUM列没有建立索引,而ID列建立了索引的原因
    其次是你的写法也确实有问题,楼上正解!!