Problem
You want to monitor the opening and closing of connections and the number of connections in the connection pool while an application is running.
Solution
Use the Windows Performance Monitor and the SQL Profiler to monitor connections and connection pooling. See Recipe 1.15 for more information on connection pooling.
Discussion
The following subsections discuss monitoring connection pooling for SQL Server and ODBC .NET Framework data providers.
SQL Server
You can monitor SQL Server connections and connection pooling using the SQL Server Profiler or the Windows Performance Monitor as described in the following subsections.
1.14.3.1.1 SQL Server Profiler
To use the SQL Server Profiler to monitor connection pooling:
1.14.3.1.2 Windows Performance Monitor
To use the Windows Performance Monitor to monitor connection pooling:
The SQL Server .NET data provider adds performance counters that can tune connection pooling and troubleshoot pooling problems. Table 1-2 describes the counters.
Table 1-2. SQL Server .NET provider performance counters
Counter |
Description |
---|---|
SqlClient: Current # of pooled and nonpooled connections |
Current number of connections, both pooled and non-pooled |
SqlClient: Current # pooled connections |
Current number of pooled connections |
SqlClient: Current # connection pools |
Current number of connection pools |
SqlClient: Peak # pooled connections |
The largest number of connections in all pools since the process started |
SqlClient: Total # failed connects |
The total number of attempts to open a connection that have failed for any reason |
ODBC
To enable ODBC performance monitoring:
Table 1-3. ODBC connection pooling counters
Counter |
Description |
---|---|
Connections Currently Active |
Number of connections currently used by applications |
Connections Currently Free |
Number of connections in the pool available for requests |
Connections/Sec Hard |
Number of real connections per second |
Connections/Sec Soft |
Number of connections server from the pool per second |
Disconnections/Sec Hard |
Number of real disconnects per second |
Disconnections/Sec Soft |
Number of disconnects from the pool per second |
Connecting to Data
Retrieving and Managing Data
Searching and Analyzing Data
Adding and Modifying Data
Copying and Transferring Data
Maintaining Database Integrity
Binding Data to .NET User Interfaces
Working with XML
Optimizing .NET Data Access
Enumerating and Maintaining Database Objects
Appendix A. Converting from C# to VB Syntax