Sql Update

crescent_star 2007-11-16 04:41:48
今天做这样的一个东西
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的效率?
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
福禄小胸弟 2011-03-21
  • 打赏
  • 举报
回复
学习了!!
crescent_star 2007-11-19
  • 打赏
  • 举报
回复
恩应该是索引的问题,谢谢大家
netcup 2007-11-16
  • 打赏
  • 举报
回复
主要是你的NUM列没有建立索引,而ID列建立了索引的原因
其次是你的写法也确实有问题,楼上正解!!
hamburger 2007-11-16
  • 打赏
  • 举报
回复
Update a
set a.Id=b.Id
from
TableA a,TableB b
where
a.Num=b.Num

這樣寫效率應該高一點
playwarcraft 2007-11-16
  • 打赏
  • 举报
回复
1.這樣寫,效率不高
2.第2個只要10秒的原因,應該是你的id有建了索引,所以快
子陌红尘 2007-11-16
  • 打赏
  • 举报
回复
主要取决于Num和ID列上是否建有索引。


update A
set
ID=B.ID
from
TableA A,TableB B
where
A.Num=B.Num
crescent_star 2007-11-16
  • 打赏
  • 举报
回复
恩没看见给的分,大家给我一些建议,过5天才能加分

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧