SQL连接泄漏,我可以看到哪个查询没有关闭它的连接?

时间:2011-04-06 17:12:56

标签: sql-server

似乎我的一个查询没有关闭它的连接。

这是我用来获取计数的查询:

SELECT count(*) FROM sys.dm_exec_connections where client_net_address = '192.168.0.82'

当我使用调试器时,没有抛出任何异常,Visual Studio的行为方式与页面请求完成,调用堆栈清空,网页永远不会完成加载循环和挂起的方式相同。删除正在使用的连接需要iisreset

此页面请求会执行大量查询。找到罪魁祸首是可能的,但找到哪个查询有更多的时间有效吗?

是否存在类似于我上面发布的查询,我可以在SQL Server上运行以查看哪些查询请求打开连接而不关闭?

2 个答案:

答案 0 :(得分:1)

单个查询不会保持连接打开。未正确处理SqlConnection个对象,连接保持打开状态。检查代码并验证在处理SqlConnection时是否使用using语句,如下例所示:http://davidhayden.com/blog/dave/archive/2005/01/13/773.aspx

答案 1 :(得分:1)

也许您的查询仍在执行?

使用SQL Server Management Studio的活动监视器查找SQL Server的活动。右键单击您的服务器,选择“活动监视器”。

打开“进程”区域,您将看到您正在寻找的活动。您可以右键单击每个条目以查找正在执行的语句。