-- output information for active sessions, sleeping AND background
-- the output is similar to what you get FROM sys.sysprocesses
SELECT
es.session_id
, case when es.status IN ('sleeping', 'background') then 'Sleep/Bkgnd' else 'Active' end AS SessStatus
, db_name(er.database_id) AS DBName
, es.login_name
, er.blocking_session_id
, er.wait_time
, (case
when er.wait_time = 0 then ''
when er.wait_time <> 0 then er.last_wait_type
end) AS WaitOn
, es.cpu_time + er.cpu_time AS TotalCPU
, es.cpu_time AS SessCPU
, (es.reads + es.writes) AS SessAggIO
, es.memory_usage
, er.cpu_time AS ReqCPU
, (er.reads + er.writes) AS ReqAggIO
, er.open_transaction_count
, er.status
, es.host_name
, es.program_name
, er.commAND
, (SELECT SUBSTRING(text, statement_start_offset/2, (case when statement_end_offset = -1 then len(convert(nvarchar(max), text)) * 2 else statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS QueryText
FROM
sys.dm_exec_sessions AS es JOIN
sys.dm_exec_requests AS er on es.session_id = er.session_id
WHERE
es.is_user_process = 1
ORDER by
es.session_id
-- info for sleeping sessions that do NOT have associated requests
SELECT
es.session_id
, es.login_name
, es.cpu_time AS SessCPU
, (es.reads + es.writes) AS SessAggIO
, es.memory_usage
, es.host_name
, es.program_name
FROM
sys.dm_exec_sessions AS es
WHERE
lower(es.status) = 'sleeping'
AND es.session_id NOT IN (SELECT session_id FROM sys.dm_exec_requests)
AND es.is_user_process = 1
ORDER by
es.session_id
go'연구개발 > DBA' 카테고리의 다른 글
[DMV] Plans with large CPU consumption (0) | 2011.11.04 |
---|---|
[DMV] Excessive compiles/recompiles (0) | 2011.11.04 |
[DMV] 테이블의 인덱스 조각화 정도 조회하기 (0) | 2011.11.04 |
[DMV] Blocking 정보 표시 (0) | 2011.11.04 |
[DMV] Wait Resources List (0) | 2011.11.04 |