FIX: Performance decrease when application with connection pooling frequently connects or disconnects in SQL Server

Applies to: SQL Server 2012 EnterpriseSQL Server 2012 DeveloperSQL Server 2012 Express More

Symptoms


Consider the following scenario:
  • You have some applications connect to Microsoft SQL Server 2012 or SQL Server 2014 that use connection pooling.
  • There are many distinct or different logins that are used by applications to connect to SQL Server.
  • The application has a very frequent connect-query-disconnect pattern. In Perfmon, the MSSQL$<instancename>:General Statistics -> Connection Reset/sec value is in thousands. SQL Server runs a stored procedure that's named sp_reset_connection to clean up and reset the connection state for the pooled connection so it can be used by the new login.
In this scenario, you may experience a performance decrease or throughput and a high CPU usage on SQL Server.

Note: If you're monitoring wait statistics, you may also notice an increase in the CMEMTHREAD wait type during the affected timeframe.

Note This issue doesn't occur if the login(s) belongs to the sysadmin role. To protect the instance of SQL Server and the data that's stored on it, we suggest you to have logins with minimal required privileges.

Resolution


Cumulative Update information

The issue was first fixed in the following cumulative update of SQL Server.


Registry information

To use the hotfix in this package, you don't have to make any changes to the registry.

Restart requirement

You may have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix doesn't replace a previously released hotfix.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.