基本查詢:所有使用者連線
SELECT * FROM sys.dm_exec_sessions WHERE host_name IS NOT NULL;
依登入帳號分組統計
SELECT login_name, COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
常用欄位說明
| 欄位 | 意義 |
| session_id | SPID,可搭配 KILL 終止 |
| login_time | 登入時間 |
| host_name | 用戶端機器名 |
| program_name | 應用程式名稱 (如 .Net SqlClient Data Provider) |
| login_name | 登入帳號 |
| status | running / sleeping / dormant |
| cpu_time | 累積 CPU 時間 (ms) |
| memory_usage | 記憶體使用量 (8KB 頁數) |
進階:找出長時間阻塞的 Session
SELECT s.session_id, s.login_name, s.host_name, s.program_name,
r.blocking_session_id, r.wait_type, r.wait_time, r.wait_resource,
t.text AS sql_text
FROM sys.dm_exec_sessions s
JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE r.blocking_session_id <> 0;
參考文件
MSDN: sys.dm_exec_sessions (Transact-SQL)