如何在一个非常大的桌子上快速将一个字段复制到另一个字段?

时间:2018-02-09 08:28:14

标签: sql sql-server-2008

我正在做一个简单的

UPDATE table SET field2 = field1 

但我这样大约100 db,在每个DB中,这个表至少有1百万条记录,最多15 M,所有这些DB都在同一个SQL SERVER实例上,所以为了避免杀死我正在运行db的机器。

非常耗时

实际上只更新了9,499,130​​行花了42分钟。

我只是希望有一些事情可以加快它。

.. chunking ..?索引?我真的在寻求想法或最好的pratictice或whatelse。

如果需要,请使用评论向我询问信息。我很快就会回复。

注意:我甚至会接受单词“不”。答案。

编辑:这是不是课程练习。我只是维护一些不是我自己创造的东西

编辑2:我们正在执行此更新,因为 100%的记录使这些字段不同

编辑3:我已经确认在桌面上设置了无触发器

编辑4:缓慢的原因是由于非常糟糕的Windows 2008服务器VPS,磁盘带宽是我见过的最糟糕的

1 个答案:

答案 0 :(得分:1)

如果在索引中使用了field2,则应该禁用该表的索引。然后执行更新。完成后,重新启用索引。