SQL Server如何判断哪些会话/连接是长连接?

一般数据库中可能存在长连接或短连接会话。何会话长连接是判断相对于通常的短连接而说的,也就是连接长时间保持客户端与服务端的连接状态。如果不从应用程序入手,长连如何判断SQL Server数据库中哪些会话是何会话长连接呢?

在SQL Server中有连接与会话的概念,一般而言,判断连接是连接物理概念,而会话则是长连逻辑上的概念。两者是何会话对同一件事情不同层次的香港云服务器描述。简单讲,判断连接(Connection)是连接物理上的客户端同服务器的通信链路,会话(Session)是长连逻辑上的用户同服务器的通信交互。

SQL Server如何判断哪些会话/连接是长连接?

例如,何会话在你的判断电脑上,使用SSMS客户端工具连接数据库,连接你可以开启多个会话,而连接只有一个。那么我们要判断长连接短连接,就必须使用连接的登陆时间,亿华云计算而不是会话的登陆时间。

在SQL Server中sys.dm_exec_sessions中的login_time表示建立会话的时间,而DMV视图sys.dm_exec_connections中的connect_time表示建立连接时的时间戳,所以要你判断数据库的连接是长连接还是短连接,就可以使用sys.dm_exec_connections中的connect_time字段,假设一个连接建立超过5分钟(这个值可以根据实际情况或要求调整),就判断为长连接,那么可以使用下面SQL来查询

复制select s.login_name , s.host_name , c.client_net_address , c.local_net_address , c.connect_time , s.session_id , datediff(mi, connect_time, getdate()) as connect_duration_min from sys.dm_exec_connections c inner join sys.dm_exec_sessions s on c.session_id =s.session_id where c.session_id > 50 and c.local_net_address is not null and datediff(mi, connect_time, getdate()) >5 order by connect_duration_min;1.2.3.4.5.6.7.8.9.10.11.12.

统计长连接的设备/终端的企商汇信息

复制select distinct c.client_net_address, (select host_name from sys.dm_exec_sessions s where s.session_id = c.session_id) as host_name from sys.dm_exec_connections c where c.session_id > 50 and c.local_net_address is not null and datediff(mi, c.connect_time, getdate()) >5 order by client_net_address,host_name;1.2.3.4.5.6.

数据库
上一篇:电脑链接错误1062(解析电脑链接错误1062的原因和解决办法,帮助您快速恢复正常使用)
下一篇:解决错误代码0xc000007b的有效方法(修复Windows错误代码0xc000007b的实用技巧)