Wie kann ich feststellen, wie viele SQL-Verbindungen ich in einem Windows-Dienst geöffnet habe?

Ich sehe einige Fehler, die auf ein "Verbindungsleck" hinweisen. Das heißt, Verbindungen, die nicht ordnungsgemäß geschlossen wurden und der Pool wird knapp. Also, wie gehe ich daran, dies zu instrumentieren, um genau zu sehen, wie viele zu einer bestimmten Zeit geöffnet sind?

0
hinzugefügt bearbeitet
Ansichten: 2

7 Antworten

Verwenden Sie die Anweisung "using", um sicherzustellen, dass Ihre Verbindungen immer geschlossen sind und Sie dieses Problem nie wieder haben werden:

using(SqlConnection connection = new SqlConnection())
{
...
}//connection is always disposed (i.e. closed) here, even if an exception is thrown
0
hinzugefügt

Wenn Sie .net verwenden, gibt es den .net-Datenprovider für SQL Server in PerfMon. Sie können dort NumberOfPooledConnections anzeigen

0
hinzugefügt

sp_who2 gespeicherte Prozedur in der Master-Tabelle ist dies von einer Datenbankseite. Es zeigt Ihnen Verbindungen zur Datenbank an. Wenn Sie nach mehr Daten suchen, versuchen Sie es auch mit Profiling.

0
hinzugefügt

Implementieren Sie einen Dienst, bei dem alle Verbindungen erstellt, geöffnet und geschlossen werden. Halten Sie einen Zähler dort. Melden Sie sich bei jedem Öffnen oder Schließen einer Verbindung mit Ihrem Protokollierungs-Framework an.

0
hinzugefügt

Sie können das Profiler-Tool verwenden, um alle vorhandenen und öffnenden und schließenden Verbindungen zu verfolgen

Sie können Profiler vom Enterprise Manager öffnen

0
hinzugefügt

Wenn Sie SQL 2000 verwenden, können Sie SQL 2000 Enterprise Manager einchecken:

So zeigen Sie das Fenster "Aktuelle Aktivität" an   SQL Server Enterprise Manager, erweitern   eine Servergruppe, und erweitern Sie dann a   Server. Erweitern Sie Management und dann   Erweitern Sie Aktuelle Aktivität. Klicken Sie auf Verarbeiten   Info.

     

Die aktuelle Serveraktivität ist   im Detailbereich angezeigt.

( http://technet.microsoft.com/en-us/library/cc738560 .aspx )

(Von Google-Suche: sql 2000 aktuelle Aktivität)

0
hinzugefügt

Sie können sp_who2 in SQL Server Management Studio oder Query Analyzer ausführen, um alle Ihre aktuellen Verbindungen anzuzeigen. Das ist SQL Server. Ich bin mir nicht sicher, welches RDBMS Sie verwenden.

Schauen Sie auch in Ihren Code und stellen Sie sicher, dass Sie eine Verbindung schließen, sobald Sie sie nicht mehr benötigen. Sei anal darüber!

0
hinzugefügt