我有一個大的循環,更新2,800,000條記錄訪問數據庫,我把循環分成7個線程,因此每個線程在400,000條記錄上工作,循環大約需要0.7秒來更新一條記錄因爲有很多計算需要完成。訪問數據庫上的VB.NET多線程
我確定這些線程有助於使進程更快,因爲我測試了7200RPM HDD和SSD以及ramdisk上的應用程序,速度差別並不明顯,所以IO不是瓶頸。
我想第一個線程處理第一個400k記錄和第二個線程來處理下一個400k記錄等等。
- 什麼是正確的方法來做到這一點?
- 是否每個線程都有自己的數據表和綁定源?
- 如何將結果合併到一個表中,並在流程完成時將其顯示在datagridview中?
這是一次性操作嗎?如果是這樣,爲什麼要編寫一個線程方法呢?如果不是,如果您必須定期更新280萬條數據庫記錄,是否會成爲糟糕設計的暗示?如果不是,可能Access首先使用的是錯誤的技術?無論如何,這個問題表明與線程訪問數據庫不同的問題。 – Tomalak 2012-08-11 12:36:08
手術每3個月進行一次 – user1590636 2012-08-11 12:37:40
我之前的評論中還有其他一些問題,請謹慎回答?另外:是一個集操作('UPDATE Table SET Field = CalculatedValue()')不可能?請注意,您可以在Access SQL語句中使用VBA中的用戶定義函數。此外:需要多長時間*現在*?請注意,使用七個線程不會將速度提高七倍。 – Tomalak 2012-08-11 12:42:11