サーバーへの接続は、時間のかかるいくつかの手順で構成されています。ソケットまたは名前付きパイプなどの物理チャネルの確立、サーバーとの最初のハンドシェイクの実行、接続文字列の情報の解析、サーバーによる接続の認証、現在のトランザクションへ参加するための検証などの手順を行う必要があります。いくつかの違いがあるだけの構成を接続に使用しています。アプリケーションの実行時に、多数の同一の接続が繰り返し開かれ、閉じられているのです。接続プールと呼ばれる最適化手法を使用します。pooling.接続プールは、新しく開く必要のある接続の数を減らします。プーラーは、物理的な接続の所有権を保持します。プーラーは、任意の接続構成それぞれのアクティブな接続のセットをそのまま保持して、接続を管理します。呼び出すと、プーラーは、プールに使用可能な接続があるかどうかを確認します。プールされた接続が使用できる場合は、新しい接続を開く代わりに、プールされた接続を呼び出し元に返します。呼び出すと、プーラーは接続を閉じる代わりに、プールされたアクティブな接続のセットに接続を返します。呼び出しで再度使用できる状態になります。call.同じ構成を持つ接続のみをプールすることができます。構成ごとに1つずつ、複数のプールを同時に保持します。接続は接続文字列によってプール内で区別されます。よっても区別されます。接続がプールされるかどうかは、その接続がトランザクションに参加しているかどうかにも依存します。インスタンスは接続プールに影響します。インスタンスごとに異なる接続プールが使用されます。same.接続をプールすると、アプリケーションのパフォーマンスとスケーラビリティを大幅に改善できます。接続プールが有効になっています。明示的に無効にしない限り、プーラーは、アプリケーションで接続が開かれたり、閉じられたりする際に接続を最適化します。接続プール機能の動作を制御する接続文字列修飾子を指定することもできます。詳細については、このトピックで後述する「接続文字列キーワードによる接続プールの制御」を参照してください。ブロック期間内にアプリケーションが接続を試みると、最初の例外が再度スローされます。Assignment接続が最初に開かれると、完全一致のアルゴリズムに基づいて接続プールが作成され、接続内の接続文字列に関連付けられます。各接続プールが別の接続文字列に関連付けられます。新しい接続が開かれたとき、接続文字列が既存のプールと完全に一致しない場合は、新しいプールが作成されます。ごとにプールされます。接続文字列は完全に一致していることが必要です。同じ接続に対してキーワードを異なる順序で指定すると別々にプールされます。割り当てる値が異なります。指定されていない、またはゼロに指定されている場合、プール内の接続は、アクティブではない一定の期間後に閉じられます。アンロードされ、プロセスが終了するまで破棄されません。オーバーヘッドが発生します。overhead.注意フェールオーバーなど、致命的なエラーが発生すると、プールは自動的にクリアされます。つの接続プールが作成されます。サイズ要件を満たします。達するまで、接続がプールへ追加されます。接続が終了または破棄されると、その接続は解放され、プールに戻されます。オブジェクトが要求されると、プールに使用可能な接続がある場合はプールから取得されます。コンテキストにも関連付けられていない接続のことです。server.接続プーラーは、接続がプールに解放されたときに接続の再割り当てを行って、接続に対する要求に応えます。サイズに達すると、使用可能な接続を取得できなくなり、要求はキューに置かれます。達するまで接続の再利用を試みます。接続がタイムアウトになる前に、プーラーが要求を満たすことができない場合は、例外がスローされます。接続がプールに返されるようにするために、接続を使い終えたら必ず接続を終了することを強くお勧めします。ステートメントを使用します。明示的に終了されていない接続は、プールに追加したり返したりすることができないことがあります。システムリソースを破棄する」を参照してください。呼び出さないでください。リソースだけを解放してください。メソッドを含めないでください。詳細については、「ガベージコレクション」を参照してください。イベントクラス」を参照してください。分になったか、サーバーとの接続が切断されたことをプール機能が検出した場合に、プールからの接続を削除します。サーバーとの通信を試みた後にのみ、切断されたサーバー接続が検出可能になることに注意してください。接続がサーバーに接続していないことがわかると、その接続は無効としてマークされます。無効な接続は、閉じられるか、または再利用された場合のみ、接続プールから削除されます。reclaimed.既に存在しないサーバーへの接続が存在する場合は、接続プーラーが、その接続が切断されていることをまだ検出せず、無効というマークを付けていない状況のときでも、プールからその接続を削除できます。トリップが実行されることにより、プーラーの利点が失われてしまうことを防ぐためにあります。この状況が発生した場合は、接続の使用を最初に試みたときに接続が切断されていることが検出され、例外がスローされます。ClearPoolプールをクリアする2つの新しいメソッドが導入されました。特定の接続に関連付けられた接続プールをクリアします。接続が閉じられるとプールに返されずに破棄されます。コンテキストに基づいて割り当てられます。コンテキストの中に参加させます。トランザクションを持つ接続プールに対する次の要求でも、使用可能であれば同じ接続を返すように接続が保持されます。このような要求が発行された場合で、なおかつ、プールされた接続が使用できない場合は、プールの非トランザクション部分から接続を取り出して参加させます。プールのどちらの領域にも使用できる接続がない場合は、新しい接続を作成して参加させます。コンテキストに基づいて特定のサブプールへ返ります。そのため、分散トランザクションが保留状態である場合を含め、エラーを発生させることなく、開発者が接続を終了させることは可能です。これにより、分散トランザクションを後でコミットまたは中止できます。ロジックの動作を調整するために使用できる接続文字列キーおよび値のペアをサポートします。ConnectionString」を参照してください。アプリケーションの多くで一般的な問題です。これにより、多数の接続が開いたままになってメモリを消費し、パフォーマンスが低下します。基づいてプールされます。つのプールが作成されます。これによって、単一のユーザーによる後続のデータベース要求のパフォーマンスが向上しますが、他のユーザーによって作成された接続は使用できません。サーバーに存在することになります。アプリケーションのアーキテクチャに重点を置く必要があるために起こる副作用です。サイトをホストしています。グループの特定のデータベースへの接続を開きます。認証データベースへの接続はプールされ、すべてのユーザーが使用できるようになります。各データベースに対して個別の接続のプールが存在するため、サーバーへの接続数が増加します。server.これもまた、アプリケーションのデザインの副作用です。接続するときにセキュリティを損なうことなく、この副作用を回避する比較的簡単な方法があります。ステートメントを実行して目的のデータベースに変更します。文字列変数で指定した目的のデータベースに切り替えるコードを次に示します。コンテキストをリセットすることはできません。プールを有効した場合は、プールに接続が返され、プール接続が再利用されると、エラーが発生します。アプリケーションロールエラー」を参照してください。メカニズムの使用をお勧めします。アプリケーションロールの作成」を参照してください。Articlesこのページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック商標このページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック。