在nvarchar列上更新没有索引的大量记录

时间:2017-07-25 12:41:32

标签: sql sql-server tsql

当此列没有索引时,有没有办法相对快速地更新SQL Server 2014中的大量记录,过滤nvarchar(x)列?

EG。我想跑:

UPDATE Products 
SET Active = 1 
WHERE ProductBrand = 'brand name'

在我的Product表上有数百万行,ProductBrand上没有索引。

创建索引大约需要45分钟,我们希望更快地更新表格。

我们希望尽可能快地执行此操作,创建索引需要花费大量时间。如果除了使用索引之外还有其他方法,我就会徘徊。

(在名称列上创建索引并将其保留在那里当然是一种很好的做法,并且不时重建它)

1 个答案:

答案 0 :(得分:0)

检查您的产品表,也许您有ProductBrandId的索引,如果没有,您可以创建一个具有相同结构的新tmpProduct表,并在“Active”字段中默认为1。

将所有寄存器插入新表

删除原始表并重命名,然后将tmpProduct重命名为Product

您必须确保重新创建所有触发器和引用