逐个更新记录

时间:2012-10-18 07:25:38

标签: asp.net sql-server-2008

我有5000条记录我正在计算一个用户的工资并在数据库中更新他的数据。所以它需要退出多久以更新5000条记录。我想首先计算所有用户的工资,然后更新到db中的记录。  有没有其他方法我们可以单击更新数据库

1 个答案:

答案 0 :(得分:0)

这实际上取决于您管理数据访问层的方式以及进行计算所需的数据?您是否只需要一个表中所需的所有数据,或者从另一个表中获取其他一些数据所需的每条记录?

一种方法是检索每条记录并在事务中进行计算,然后将其存储在数据库中。通过这种方式,您还可以利用ajax UI来告知用户计算的进度。通过这种方式,您应该使用SqlDataReader来获取数据,因为它非常优化并且比使用DataSet和DataTables的开销更少,并且您还可以防止多个类型转换。此外,您还可以通过利用TPL进行优化,或者使其可配置为每次获取/更新N条记录。如果您拥有记录的ID,则此方法有效。您还需要有一个记录字段,以便在发生任何断开连接或崩溃或iisreset执行时跟踪您的计算,以便您可以恢复计算而不是再次重新运行。