適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Server への接続を開くと、コストのかかる操作になる可能性があるため、SQL Server Management Studio では、ADO.NET SqlClient ドライバーの接続プール機能が利用されます。 詳細については、「SQL Server 接続プール (ADO.NET)を参照してください。
この記事では、SQL Server Management Studio での接続プールの詳細と、サーバーへの影響を軽減する方法について説明します。
使用法と利点
SQL Server Management Studio は、多数の機能を備えた複雑なアプリケーションであり、その多くはデータベースまたはサーバーからの情報を必要とします。 この情報の多くは、初期接続時のオーバーヘッドを回避し、機能が使用されていない場合に不要な作業を回避するために、オンデマンドで読み込まれます。
接続プールは、この情報を取得するオーバーヘッドを減らすのに役立ちます。 SQL Server Management Studio の機能では、通常、接続ダイアログでユーザーが入力したのと同じ基本接続が使用されます。異なる機能では、新しい接続を開くのではなく、同じ物理接続を再利用できます。
プールされていない接続
SQL Server Management Studio のすべての接続がプールされているわけではありません。 クエリ エディターごとに使用される接続など、一部は明示的にプールされません。 これには、機能に関連付けられた特定のセッション ID (SPID) を保持する必要がある、または接続プロパティに加えられた変更が使用状況全体で一貫していることを確認する必要があるなど、いくつかの理由があります。
開いている接続を制御する
接続プールによりパフォーマンスが向上しますが、必要以上に長い間接続が開いたままになることがあります。 プールに接続が返されると、接続は開いたままですが、アイドル状態 (またはスリープ状態) になります。 この状態では、データベースの削除や変更など、すべての接続を閉じる必要があるアクションが実行されないようにすることができます。
これらのアイドル状態の接続を閉じるには、いくつかのオプションがあります。
ADO.NET が接続を閉じるまで待ちます。 これは、4 ~ 8 分間使用されていない接続で発生します。
SQL Server Management Studio の一部の操作 (
DROP DATABASEなど) には、操作を実行する前に既存のすべての接続を閉じるオプションが用意されています。[アイドル状態のSQL接続を閉じる] コマンドを [ヘルプ] メニューで使用します。 このオプションは、SQL Server Management Studio の現在のインスタンスのすべてのアイドル状態の接続を直ちに閉じます。 アクティブな接続は、使用が完了したときに (プールに戻されずに) 即時閉じられる場合以外は、影響を受けません。
手記
アイドル状態の接続を閉じると、次回サーバーへの新しい接続が必要になると、接続を再確立する必要があるため、パフォーマンスが低下する可能性があります。
SQL Server Management Studio を閉じます。 SQL Server Management Studio を閉じると、そのデータベースまたはインスタンスに関連付けられている開いているすべての接続が直ちに閉じます。
KILL ステートメントを実行して、操作をブロックしているセッションをすべて閉じます。