2012-10-18 67 views
0

我有5000條記錄我正在計算一個用戶的薪水並更新他在數據庫中的數據。因此更新5000條記錄需要很長的時間。我想先計算所有用戶的工資,然後更新到db中的記錄。 是否有其他方式可以單擊更新db逐一更新記錄

+1

請更具體一些。「你一個一個計算5000的工資」是什麼意思? –

+2

如果您也會告訴我們您是如何計算工資的,那將會很有幫助。 –

+0

需要更多有關您的問題的詳細信息 –

回答

0

這是否真的取決於您如何管理您的數據訪問層以及進行計算需要哪些數據?你是否只需要一張表或每張需要從其他表中取出其他數據的記錄就可以獲得所有數據?

一種方法是檢索每個記錄並在事務中執行計算,然後將其存儲在數據庫中。通過這種方式,您還可以利用ajax UI向用戶通知計算進度。通過這種方式,您應該使用SqlDataReader來獲取數據,因爲它非常優化,並且比使用DataSet和DataTable更少的開銷,並且還可以防止幾個類型轉換。另外,您還可以通過利用TPL對其進行優化,或者使其可配置爲每次都讀取/更新N個記錄。如果您擁有記錄的ID,則此方法有效。您還需要有一個用於記錄的字段,以便在出現任何斷開或崩潰或iisreset執行的情況下跟蹤您的計算,以便您可以恢復計算而不是再次重新運行。