0

我有 5000 条记录,我正在计算一个用户的工资并更新他在数据库中的数据。所以更新 5000 条记录需要很长时间。我想先计算所有用户的工资,然后更新到数据库中的记录。有没有其他方法可以通过单击更新数据库

4

1 回答 1

0

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

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

于 2012-10-18T08:00:30.293 回答