正如您所知,Sql Server 中有三个概念:连接(connection),会话(session)和请求(request)。
我们可以使用 sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests
系统视图来监视它们。
您能否举例说明它们之间的区别?
正如您所知,Sql Server 中有三个概念:连接(connection),会话(session)和请求(request)。
我们可以使用 sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests
系统视图来监视它们。
您能否举例说明它们之间的区别?
sys.dm_exec_sessions DMV包括用户会话和用于运行后台任务的内部SQL Server会话。 sys.dm_exec_connections 包含由外部客户端建立的会话的附加信息,包括协议详细信息。 sys.dm_exec_requests 包含有关活动SQL Server请求(例如正在执行的查询)的信息。
运行下面的查询以查看返回的信息。将外连接替换为内连接以更好地查看关系基数。
--all sessions, including SQL Server system sessions
SELECT *
FROM sys.dm_exec_sessions AS s;
--sessions with client connections (including internal SQL Server system sessions that have no connection)
SELECT *
FROM sys.dm_exec_sessions AS s
LEFT JOIN sys.dm_exec_connections AS c ON s.session_id = c.session_id;
--sessions, including request info
SELECT *
FROM sys.dm_exec_sessions AS s
LEFT JOIN sys.dm_exec_connections AS c ON s.session_id = c.session_id
LEFT JOIN sys.dm_exec_requests AS r ON s.session_id = r.session_id
ORDER BY s.session_id;
连接是物理通信渠道,会话是信息交换的状态。一个连接可以有多个会话。请求只是向服务器请求任何资源。一旦您和服务器之间建立了会话,就可以请求资源。