首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

SQL Server 查詢目前連線數:sys.dm_exec_sessions 實用指令

     編輯:SQL Server 2005

基本查詢:所有使用者連線

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_idSPID,可搭配 KILL 終止
login_time登入時間
host_name用戶端機器名
program_name應用程式名稱 (如 .Net SqlClient Data Provider)
login_name登入帳號
statusrunning / 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)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved