図 3 には、一般的なデータベース・マネージャー・アプリケーションがデータベース・サーバー上にあるデータベースにアクセスする方法が示されています。
図 3. サーバー上のデータベースにアクセスするアプリケーション
![]() |
データベースへのアクセスは、すべてネットワークを介して行われるので、ある場合にはこれがパフォーマンスの低下を招く結果になります。
ストアード・プロシージャーを使用すると、クライアント・アプリケーションは、データベース・サーバー上のストアード・プロシージャーに制御を渡すことができます。このようにすると、ストアード・プロシージャーは ネットワークを介して不必要なデータ伝送を行わずに データベース・サーバー上で中間処理を実行することが可能になります。クライアントで実際に必要とされるレコードだけが伝送されることになります。この結果、ネットワーク通信量は低減し、全体のパフォーマンスは向上します。 図 4 ではこの機能が示されています。
図 4. ストアード・プロシージャーを使用するアプリケーション
![]() |
アプリケーションでストアード・プロシージャーを使用すると、以下のような利点があります。
ストアード・プロシージャーを使用して大量のデータを処理するために適切に設計されたアプリケーションは、クライアントが必要とするデータだけを戻します。このため、ネットワークを介して伝送されるデータの量は低減されます。
グループ化される SQL ステートメントの数が多いほど、ネットワーク通信量を減らすことができます。典型的なアプリケーションでは、各 SQL ステートメントごとに、ネットワークを通る 2 回の通信が必要ですが、ストアード・プロシージャーの技法を使用するアプリケーションでは、 SQL ステートメントのグループ ごとにこれが必要となります。これによって通信の回数が減り、各通信に関連したオーバーヘッドが削減されます。