Sql Server 数据库 Connection Request Transaction Batch Session Processes 的关系
一直对Sql Server 数据库的连接请求和会话及进程之间的关系比较模糊,决定花时间研究一下,可能用到的DMV(Dynamic Management Views)
https://msdn.microsoft.com/zh-cn/library/ms181509.aspx
SQL Server Management Studio 打开一个查询窗口就会多添加一个连接(connection)
--连接
Select '连接' Type,session_id 会话ID,connection_id,client_net_address ip,*
from sys.dm_exec_connections
order by session_id
--会话
Select '会话' Type,session_id 会话ID,*
from sys.dm_exec_sessions
WHERE database_id=(select db_id(N'TEST'))
order by session_id
--请求
select '请求' Type,session_id 会话ID,connection_id,status,command,DB_NAME([database_id]) DB_NAME, *
from sys.dm_exec_requests
where database_id=(select db_id(N'TEST'))
order by session_id
--进程
select
'进程' Type,spid 会话ID,kpid 线程ID,status 状态,open_tran 进程的打开事务数,ecid 子线程的执行上下文ID,*
from master.dbo.sysprocesses
where dbid=(select db_id(N'TEST'))
order by spid

浙公网安备 33010602011771号