我正在寻找有关如何执行以下操作的建议:
- 我在 SQL Server 中有一个表,大约有 3 -6 百万条记录和 51 列。
- 从数学计算中获取的 45 列数据中计算出一个值后,只需要更新一列。
- 我已经通过 C# 完成了数学计算,并且能够从中创建 Datatable [有数百万记录是的]。
现在我想以最有效的方式将它们更新到数据库中。我知道的选项是
- 对每条记录运行更新查询,因为我在数据读取器上使用循环来进行数学运算并创建 DataTable。
- 创建一个临时表并使用 SQLBulkCopy 复制数据,稍后使用 MERGE 语句
- 虽然这很难做到,但可以尝试在 SQL 中创建 Function 来完成所有数学运算,只需运行简单的更新,无需任何条件即可一次全部更新。
我不确定哪种方法更快或更好。任何的想法?
编辑:为什么我害怕使用存储过程
- 首先我不知道我是怎么写的,我很陌生。虽然也许现在是时候这样做了。
- 我的公式是取一列,在它们上应用一个论坛,以及附加的常量值 [这也是列名称的一部分],然后取所有 45 列并应用另一个公式。
- 结果将存储在第 46 列。
谢谢。