ストアド プロシージャの実行

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

ストアド プロシージャは、データベースに保存される実行可能なオブジェクトです。 SQL Server では次に示すオブジェクトをサポートしています。

  • ストアド プロシージャ:

    1 つの実行可能なプロシージャとしてプリコンパイルされた 1 つ以上の SQL ステートメント。

  • 拡張ストアド プロシージャ :

    拡張ストアド プロシージャ用の SQL Server オープン データ サービス API に記述された、C または C++ のダイナミック リンク ライブラリ (DLL)。 オープン データ サービス API によりストアド プロシージャの機能が拡張され、C または C++ のコードを実装できるようになります。

ステートメントの実行時、データ ソースに対して (クライアント アプリケーション内でステートメントを直接実行または準備せずに) ストアド プロシージャを呼び出すと、次のような利点があります。

  • パフォーマンスが高い

    SQL ステートメントは、プロシージャが作成される時点で、解析およびコンパイルされます。 プロシージャの実行時には、これらの作業は必要ありません。

  • ネットワーク オーバーヘッドの軽減

    複雑なクエリをネットワーク経由で送信するのではなく、プロシージャを実行することで、ネットワーク トラフィックを削減できます。 ODBC アプリケーションが ODBC { CALL } 構文を使用してストアド プロシージャを実行すると、ODBC ドライバーがさらに最適化を行い、パラメーター データの変換が不要になります。

  • 一貫性の向上

    組織の規則がストアド プロシージャなどの 1 つのリソースに集約して実装されると、コーディング、テスト、デバッグを一度で行えます。 各プログラマが独自の実装を開発するのではなく、テスト済みの共通のストアド プロシージャを使用できます。

  • 精度の向上

    通常、ストアド プロシージャは経験を積んだプログラマが開発するので、技術レベルの異なるプログラマが繰り返し手を加えたコードに比べて、効率的でエラーが少なくなる傾向があります。

  • 機能の追加

    拡張ストアド プロシージャでは、Transact-SQL ステートメントでは使用できない C および C++ 機能を使用できます。

    ストアド プロシージャを呼び出す方法の例については、「 Process Return Codes and Output Parameters (ODBC)」を参照してください。

このセクションの内容

参照

SQL Server Native Client (ODBC)
ストアド プロシージャを実行する方法に関するトピック (ODBC)