Freigeben über


Pooling von Verbindungen in SQL Server Management Studio

Gilt für: SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Das Öffnen von Verbindungen mit einem SQL Server kann ein kostspieliger Vorgang sein, daher verwendet SQL Server Management Studio das Verbindungspooling-Feature des ADO.NET SqlClient-Treibers. Weitere Informationen finden Sie unter SQL Server-Verbindungspooling (ADO.NET).

Dieser Artikel enthält weitere Informationen zum Verbindungspooling in SQL Server Management Studio und Möglichkeiten zum Verringern der Auswirkungen, die er auf Ihrem Server haben kann.

Nutzung und Vorteile

SQL Server Management Studio ist eine komplexe Anwendung mit zahlreichen Features, von denen viele Informationen aus einer Datenbank oder einem Server erfordern. Viele dieser Informationen werden bei Bedarf geladen, um mehr Aufwand beim Herstellen einer ersten Verbindung zu vermeiden und unnötige Arbeit zu vermeiden, wenn ein Feature nicht verwendet wird.

Das Verbindungspooling kann dazu beitragen, den Mehraufwand beim Abrufen dieser Informationen zu verringern. Features in SQL Server Management Studio verwenden in der Regel dieselbe Basisverbindung, die der Benutzer im Verbindungsdialogfeld eingegeben hat, und unterschiedliche Features können dieselbe physische Verbindung wiederverwenden, anstatt eine neue zu öffnen.

Nicht-gepoolte Verbindungen

Nicht alle Verbindungen in SQL Server Management Studio werden in einem Pool zusammengefasst. Einige, z. B. die für jeden Abfrage-Editor verwendete Verbindung, werden explizit nicht in einem Pool zusammengefasst. Hierfür gibt es mehrere Gründe, z. B. die Notwendigkeit, eine bestimmte Sitzungs-ID (SPID) im Zusammenhang mit dem Feature beizubehalten, oder um sicherzustellen, dass Änderungen an den Verbindungseigenschaften in der gesamten Nutzung konsistent bleiben.

Steuern geöffneter Verbindungen

Während das Verbindungspooling die Leistung verbessert, führt dies auch dazu, dass Verbindungen länger geöffnet bleiben, als notwendig erscheinen. Wenn eine Verbindung an den Pool zurückgegeben wird, bleibt sie offen, befindet sich aber im Leerlauf (oder im Ruhezustand). Dieser Zustand kann verhindern, dass Aktionen ausgeführt werden, die erfordern, dass alle Verbindungen geschlossen werden, z. B. Ablegen oder Ändern einer Datenbank.

Es stehen einige Optionen zum Schließen dieser Leerlaufverbindungen zur Verfügung:

  • Warten Sie, bis ADO.NET die Verbindungen schließt. Dies geschieht bei Verbindungen, die zwischen vier und acht Minuten nicht verwendet wurden.

  • Einige Vorgänge in SQL Server Management Studio (z.B. DROP DATABASE) bieten die Möglichkeit, alle vorhandenen Verbindungen zu schließen, bevor der Vorgang ausgeführt wird.

  • Verwenden Sie den Befehl "Leerlauf-SQL-Verbindungen schließen " im Hilfemenü . Diese Option schließt sofort alle Leerlaufverbindungen für die aktuelle Instanz von SQL Server Management Studio. Aktive Verbindungen sind nicht betroffen, es sei denn, sie werden sofort geschlossen, sobald sie ihre Nutzung abgeschlossen haben, anstatt in den Pool zurückgegeben zu werden.

    Hinweis

    Das Schließen von Leerlaufverbindungen kann zu einer verringerten Leistung führen, wenn beim nächsten Herstellen einer neuen Verbindung mit dem Server eine neue Verbindung erforderlich ist, da die Verbindung erneut hergestellt werden muss.

  • Schließen Sie SQL Server Management Studio. Das Schließen von SQL Server Management Studio schließt sofort alle geöffneten Verbindungen, die dieser Datenbank oder Instanz zugeordnet sind.

  • Führen Sie die KILL-Anweisung aus, um alle Sitzungen zu schließen, die Ihren Vorgang blockieren.