日期:2014-05-19  浏览次数:20480 次

一个表UPDATE另一个表,如何提高速度
table1
姓名     月份     工资
-----------------
张三     1           1000
李四     1           800
王五     1           700
张三     2           1050
李四     2           800
王五     2           740
张三     3           1300
李四     3           800
王五     3           700
.....

table2
姓名     月份     工资
-----------------
张三     1           1200
李四     1           820
王五     1           700

update   a   set   a.工资=b.工资   from   table1   a,table  
b   where   a.姓名=b.姓名   AND   a.月份=b.月份  


现在TABLE1有十多万条记录,在查询分析器上用上面这个UPDATE语句,时间很长要20秒,有什么办法可以提高速度?另外奇怪的是在查询分析器上重复再执行一次时间只要8秒。




------解决方案--------------------
在存储过程中调用应该相对来说好点,好象没什么其它方法
------解决方案--------------------
楼主写的就可以,数据多速度是会慢.
------解决方案--------------------
--改为left join (2000/以上版本对left join 进行了数据库引擎优化)
update a
set a.工资=b.工资
from table1 a left join [table] b on
a.姓名=b.姓名 AND a.月份=b.月份
------解决方案--------------------
查询分析器是否会自动作优化处理?
会的
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html