ステップ 0. アプリケーションを作成します。「紙の」仕様から説明しているようなマルチコンピューターシステムの実際のパフォーマンスを伝えることは不可能です...試して、最大のスローダウンを保持するものを確認する必要があります...これは伝統的に物理IOですが、常にではない...
ステップ 1. 隔離された環境でデータのサンプル セットを使用してプロファイリングします。これはグロスメトリックです。時間がかかるものを分離しようとしているのではなく、ルールの実行にかかる全体の時間を測定しているだけです。
隔離された環境とはどういう意味ですか? マシン間で同じ種類のネットワーク ハードウェアを使用したいが、そのネットワーク セグメントで他のトラフィックを許可しない。この時点であまりにも多くの変数が導入されます。
プロファイルとはどういう意味ですか? 現在のハードウェアで、次の状況で完了するまでにかかる時間を測定します。 データ生成を自動化するプログラムを作成します。
シナリオ 1. 可能な限り単純な 1,000 のルール。
シナリオ 2. ユーザーが入力することを合理的に期待できる最も複雑な 1,000 のルール。
シナリオ 3 & 4. 10,000 最も単純で最も複雑。
シナリオ 5 & 6. 25,000 最も単純なものと最も複雑なもの
シナリオ 7 & 8. 50,000 最も単純で最も複雑
シナリオ 9 & 10. 100,000 最も単純で最も複雑
ステップ 2. データを分析します。
完了時間に傾向があるかどうかを確認します。それらがルールの量に厳密に結びついているように見えるのか、それとも複雑さも考慮に入れているのかを理解してください...私はそうなると思います.
200,000 および 500,000 のルールがある場合に予想される所要時間を示す傾向線を作成します。200,000 で別の実行を実行します。トレンド ラインが正しいかどうかを確認し、正しくない場合は、トレンド ラインの作成方法を修正します。
ステップ 3. システムが 20,000 のルール セットを処理するときに、データベースとネットワークのアクティビティを測定します。より多くのルールでより多くのアクティビティが発生しているかどうかを確認します。その場合、SQL サーバーとの間のスループットを高速化すればするほど、実行が高速化されます。
これらが「比較的低い」場合、CPU と RAM の速度は、要求されたマシンの仕様を強化する必要がある可能性があります...
もちろん、このすべてのテストが可能な限り強力なサーバー ハードウェアを購入するよりも雇用主にコストがかかる場合は、テストに費やされた時間のコストと、最高のサーバーを購入してそれで完了し、アプリを微調整するだけのコストを比較してください。パフォーマンスを向上させるために制御する SQL...