使用ADO.NET更新当前读取的行

时间:2015-11-06 15:33:10

标签: c# sql-server ado.net

我需要更新没有主键的大表(超过3000万行)中的列。表格行具有唯一的电子邮件地址列。此更新涉及生成必须在C#中发生的值并将其附加到列值。因此必须读取行,更新列值并将其写回。

我希望在ADO.NET中有一个游标概念,但我没有看到这个。我可以足够快地读取行,但是使用电子邮件地址的WHERE子句的更新调用将永远消失。在研究之后,大多数答案似乎都被放入主键!"但这不是一个选择。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于30mil行check a fragmentation,选项不多。没有任何索引你基本上什么都不能加快速度。

只有解决方案是{{3}}堆。您应该添加聚簇索引以缓解表碎片,然后立即删除它。但是如果你不能以任何方式影响那个表,那么将所有数据移动到一个新表中可能会更快: - )