当前位置: 代码迷 >> Sql Server >> 大数据量的Update操作,该如何处理
  详细解决方案

大数据量的Update操作,该如何处理

热度:20   发布时间:2016-04-27 15:18:58.0
大数据量的Update操作
现在有Table1(4千万条记录)和Table2(5百万条记录)
我需要对Table1做Update操作,更新的数据源来自Table2

也就是想要实现下面的操作
SQL code
    Update Table1 Set Subject = a.Subject From    ( Select ID,Subject from Table2    ) as b    Where Table1.ID = b.ID

如果单独执行上面的语句,将会是一个漫长而痛苦的过程。

现在想请教各位,有没有什么好的办法解决这个问题。

------解决方案--------------------
SQL code
update table 1 set Subject =b.Subject from table1 a,table2 bwhere a.id=b.id
------解决方案--------------------
SQL code
Update Table1 Set Subject = b.Subject Fromtable1 a,table2 bWhere a.ID = b.ID
------解决方案--------------------
SQL code
    Update Table1 Set Subject = Table2.Subject     from Table2      Where Table1.ID = Table2.ID
------解决方案--------------------
Update Table1 Set Subject = b.Subject From
( Select ID,Subject from Table2 where id in (select ID from table1) as b
Where Table1.ID = b.ID

上面的语句要保证Table2的ID,Subject 是一一对应的。
------解决方案--------------------
还有阿你怎么一下要更新那么多阿!

能不能想办法相对减少更新的数据呢!

如果看样子不能再优化了
------解决方案--------------------
没什么好办法哦,我也偶尔要做这样的操作,,,可以按什么分成几部分,这样做比较快点,比如按 年,,,月 什么的
------解决方案--------------------
这么大数据量一次update?

我想说也许你的设计有问题……

------解决方案--------------------
探讨
SQL codeupdate table 1 set Subject =b.Subject from table1 a,table2 b
where a.id=b.id



a.id和b.id都添加索引,应该不会很慢

------解决方案--------------------
探讨
SQL codeupdate table 1 set Subject =b.Subject from table1 a,table2 b
where a.id=b.id



a.id和b.id都添加索引,应该不会很慢

------解决方案--------------------


Select ID,Subject from Table2

应该是你这显示500万记录慢吧?

2楼说的,应该不慢吧?
  相关解决方案