处于“休眠”状态的15000连接到sql server 2008

时间:2014-04-10 11:22:21

标签: c# sql sql-server-2008

我已在我的连接字符串中设置了pooling=false,并且在我的sql server 2008中检查有15000个连接处于休眠状态。我不明白为什么会这样。我的服务器冻结了。需要一些帮助来解决它。非常感谢。

2 个答案:

答案 0 :(得分:4)

我认为原因是你设置了pooling=false。您应该始终使用using - 语句

来最好地关闭代码中的连接
using(var myCon = new SqlConnection("Connection-String"))
{
    myCon.Open();
    // ....
} // will be closed automatically

如果您使用Connection-Pooling,则可以“关闭”连接,而不必关闭基础物理连接。这是由游泳池管理的。如果你不使用它,你必须自己管理它。如果您不关闭连接,他们将睡觉

SQL Server Sleeping Status and Connection Pooling

你为什么要禁用它?我的建议是:如果没有令人信服的理由,请再次启用它。

答案 1 :(得分:0)

sleep意味着它正在等待来自应用程序或客户端的下一个命令,并且在睡眠状态下它没有使用任何资源。

除非为重新启动启动服务,否则SQL Server本身不会终止任何连接/进程。

如果你想重新开始,你可以restart SQL Server Service,但是在生产中可能不是选项,因为它会导致停机。

(或)您可以{@ 1}}手动kill手动处理,如@Remush所述。

使用sp_whosp_who2,其中会列出PIDS,然后使用kill PID