我正在尝试识别我的应用程序中的 SQL 连接泄漏。经过一些操作后,当我的应用程序处于空闲状态(用户没有进行任何活动)时,我在sp_who2
. 所有连接的状态为,所有连接Sleeping
的Command
值为AWAITING COMMAND
。
我正在使用连接池,但未Connection Lifetime
在连接字符串中指定。这意味着如果我是对的,它将使用默认值 0。Connection Lifetime 的值为 0 意味着 SQL Server 永远不应该关闭连接,对吧?
我让我的应用程序空闲了一段时间(15-20 分钟),然后我发现它sp_who2
没有显示与我的数据库的任何连接。我想知道为什么当 Connection Lifetime 为零时会得到这个结果。无论连接生命周期值如何,SQL Server 是否会在一段时间后终止未使用的连接?
如何识别由于泄漏而打开的连接以及由于连接池而挂在那里的连接?
我的应用程序支持 SQL Server 2008、2014 和 2016。它是 ASP.NEt 应用程序。