我已在我的连接字符串中设置了pooling=false
,并且在我的sql server 2008
中检查有15000个连接处于休眠状态。我不明白为什么会这样。我的服务器冻结了。需要一些帮助来解决它。非常感谢。
答案 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_who
或sp_who2
,其中会列出PIDS
,然后使用kill PID