我有一個Foo ID的列表。我需要爲每個ID調用一個存儲過程。Parallel.ForEach應該用於數據庫調用嗎?
例如
Guid[] siteIds = ...; // typically contains 100 to 300 elements
foreach (var id in siteIds)
{
db.MySproc(id); // Executes some stored procedure.
}
每個調用都相當獨立於其他行,這不應該在數據庫中引起爭議。
我的問題:使用Parallel.ForEach並行化它會有好處嗎?或者數據庫IO將成爲一個瓶頸,而更多的線程只會導致更多的爭用?
我會自己測量它,然而,在我的測試環境中測量數據和負載遠遠小於我們真實的Web服務器時,很難測量它。
我會建議你測量兩種方法的表現,並選擇更快的方法。 – 2011-01-31 19:43:17