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

数据库 SQL Server
在SQL Server中有连接与会话的概念,一般而言,连接是物理概念,而会话则是逻辑上的概念。两者是对同一件事情不同层次的描述。

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

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

例如,在你的电脑上,使用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;

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

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;
责任编辑:武晓燕 来源: DBA闲思杂想录
相关推荐

2010-11-08 16:56:52

SQL Server绑

2010-06-17 15:17:24

SQL Server

2015-06-11 10:57:10

2010-07-22 13:38:49

SQL Server

2009-07-17 17:41:25

JDBC连接SQL S

2015-10-30 14:00:33

adosybaseodbc

2010-11-08 15:47:01

SQL Server外

2010-11-11 13:51:36

SQL Server内

2023-08-02 10:58:18

SP_WHOSQL Server

2010-11-08 17:01:53

SQL Server绑

2009-08-24 15:41:50

C#连接SQL Ser

2009-07-15 15:18:01

JDBC连接SQL S

2010-11-10 10:09:40

2018-06-06 11:01:25

HTTP长连接短连接

2011-07-25 16:47:01

HTTP Server PUSH

2010-07-12 14:42:38

SQL Server2

2022-10-24 08:14:35

长连接负载均衡Conusmer

2009-08-10 16:25:30

JSP SQL Ser

2010-11-08 15:21:17

SQL Server连

2010-11-08 14:40:46

SQL Server连
点赞
收藏

51CTO技术栈公众号