高い並列負荷の下で実行するときにパフォーマンスが必要な SQL (ADO.NET を使用し、LINQ や PLINQ を使用することは何もない) の一部を簡単にロード テストしてベンチマークする方法を探しています。
新しい並列拡張機能 CTP を使用して、具体的にはParallel.For
/Parallel.ForEach
単純に SQL を 10,000 回程度繰り返し実行することを考えましたが、これらが最適化された目的に関するデータを見つけることができませんでした。
基本的に、データベース アクセスは本質的に I/O バウンドであるため、十分な負荷が発生しないのではないかと心配しています。パラレルかどうかは誰にもわかりません。実行中のタスクが完全に CPU バウンドでない場合、x 個のスレッド (x = CPU の数) を使用するのに十分なほどインテリジェントですか? つまり、マネージド スレッド プールと同様に動作しますか?
だったらむしろカッコイイ!
編集: @CVertex が親切に以下を参照しているように、スレッドの数を個別に設定できます。ジョブが I/O バウンドの場合、デフォルトで並列ライブラリがスレッドを追加し続けるのに十分なほどインテリジェントかどうかは誰にもわかりませんか?