次の方法で共有


コンテキスト接続と通常の接続

適用対象:SQL Server

リモート サーバーに接続する場合は、コンテキスト接続ではなく、常に通常の接続を使用します。 ストアド プロシージャや関数を実行している同一サーバーに接続する必要がある場合は、ほとんどの場合、コンテキスト接続を使用します。 この方法には、同じトランザクション領域で実行するなどの利点があり、再認証する必要はありません。

また、コンテキスト接続を使用すると、通常、パフォーマンスが向上し、リソースの使用が抑えられます。 コンテキスト接続はインプロセスのみの接続であるため、ネットワーク プロトコルとトランスポート層をバイパスして Transact-SQL ステートメントを送信し、結果を受信することで、サーバー に直接 できます。 認証プロセスも同様に迂回されます。 次の図は、SqlClient マネージド プロバイダーの主なコンポーネントと、通常の接続とコンテキスト接続を使用する場合の異なるコンポーネントの相互作用を示しています。

コンテキストと通常の接続のコード パスの図。

コンテキスト接続で使用するコード パスは、通常の接続よりも短く、関連するコンポーネントの数も少ないので、サーバーへの要求とサーバーからの結果の取得が通常の接続よりも速くなることが期待できます。 サーバーでのクエリの実行時間は、どちらの接続でも同じです。

場合によっては、同じサーバーへの別の通常の接続を開く必要があります。 たとえば、コンテキスト接続の使用には、コンテキスト接続と通常の接続に関する 制限に関する説明に関する一定の制限があります。