私のアプリケーションでは、SQL リクエストが 1 つしかありません (1 つの SELECT、または 1 つの UPDATE など)。この要求は 1 回実行される可能性があり、ネットワークを通過します。最適化する方法やテクニック、またはより高速に実行する方法はありますか?
1258 次
1 に答える
0
ネットワークを使用するアプリケーションには 2 つの問題があります。1 つ、おそらく唯一重要なのはネットワーク ターンであり、もう 1 つはネットワーク データのサイズです。1 つ目は、リクエストとレスポンスのラウンド トリップのエンド ツー エンドのレイテンシと、サーバーからの応答を取得するまで次のコード行に進まないクライアントを扱います。もう 1 つは、送信されるバイト数とスループットを扱います。
大きな問題はネットワークターンです。30 バイトのパケットを送信するのにかかる時間は、1400 バイトのパケットを送信するのとほぼ同じです。多くの場合、多数の小さな (80 ~ 300 バイト) パケットが交換されます。
したがって、テクニックはネットワークのターン数を減らすことです。可能な場合は、非同期 API を使用してください。多数の単純なクエリではなく、クエリを 1 つの複雑なクエリに結合するようにしてください。特に、結果を 1 つのクエリに結合できる場合は、ループを実行してループ内でクエリを実行することは避けてください。
また、テーブルでインデックスを使用し、クエリに使用する適切なインデックスがあることを確認してください。
于 2012-05-17T14:59:29.503 に答える