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

posted @ 2017-01-17 15:40  Awarning  阅读(345)  评论(0)    收藏  举报