最近见到一条开发人员写的UPDATE语句, 觉得没什么不对, 可又觉得有地方不对, 因为性能低下.

UPDATE A SET
  (COL2, COL3) = (SELECT COL1,'T'
      FROM B WHERE B.COL1=A.COL1)
WHERE EXISTS
  (SELECT B.COL1 FROM B WHERE B.COL1=A.COL1)

    也就更新几十万条记录, 没这么慢的啊. 最后发现这个SQL语句可以简化为如下.

UPDATE A SET COL2=COL1, COL3='T'
WHERE EXISTS
  (SELECT B.COL1 FROM B WHERE B.COL1=A.COL1)

    说明还有很多可以提高的地方.