次の方法で共有


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

適用対象: SQL Server

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

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

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

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

同じサーバーに対して通常の接続を別に開く必要が生じる場合もあります。 たとえば、コンテキスト接続の使用には、 標準接続とコンテキスト接続の設定で説明されている特定の制限があります。

参照

コンテキスト接続