ストアド プロシージャの実行
ストアド プロシージャは、データベースに保存される実行可能なオブジェクトです。SQL Server では次に示すオブジェクトをサポートしています。
ストアド プロシージャ :
1 つの実行可能なプロシージャとしてプリコンパイルされた 1 つ以上の SQL ステートメント。
拡張ストアド プロシージャ :
拡張ストアド プロシージャ用の SQL Server オープン データ サービス API に記述された、C または C++ のダイナミック リンク ライブラリ (DLL)。オープン データ サービス API によりストアド プロシージャの機能が拡張され、C または C++ のコードを実装できるようになります。
ステートメントの実行時、データ ソースに対して (クライアント アプリケーション内でステートメントを直接実行または準備せずに) ストアド プロシージャを呼び出すと、次のような利点があります。
パフォーマンスの向上
SQL ステートメントは、プロシージャが作成される時点で、解析およびコンパイルされます。プロシージャの実行時には、これらの作業は必要ありません。
ネットワーク オーバーヘッドの軽減
複雑なクエリをネットワーク経由で送信するのではなく、プロシージャを実行することで、ネットワーク トラフィックを削減できます。ODBC アプリケーションが ODBC { CALL } 構文を使用してストアド プロシージャを実行すると、ODBC ドライバーがさらに最適化を行い、パラメーター データの変換が不要になります。
一貫性の向上
組織の規則がストアド プロシージャなどの 1 つのリソースに集約して実装されると、コーディング、テスト、デバッグを一度で行えます。各プログラマが独自の実装を開発するのではなく、テスト済みの共通のストアド プロシージャを使用できます。
精度の向上
通常、ストアド プロシージャは経験を積んだプログラマが開発するので、技術レベルの異なるプログラマが繰り返し手を加えたコードに比べて、効率的でエラーが少なくなる傾向があります。
機能の追加
拡張ストアド プロシージャは、Transact-SQL ステートメントでは使用できない C や C++ の機能を使用できます。
ストアド プロシージャを呼び出す方法の例については、CodePlex から入手できる、リターン コードと出力パラメーターを処理するサンプルを参照してください。詳細については、「SQL Server データベース エンジン サンプル」を参照してください。