[DB] MS-SQL 동적 관리 뷰 활용 - 실행중인 프로세스 확인하기
sys.dm_exec_requests 동적 관리 뷰를 이용하여 서버에서 실행되고 있는 모든 세션들의 정보를 확인할 수 있습니다.
사용자에게 서버에 대한 VIEW SERVER STATE 권한이 있으면 SQL Server 인스턴스에서 실행 중인 모든 세션을 볼 수 있고, 그렇지 않으면 현재 세션만 볼 수 있습니다.
SELECT r.session_id
,status
,wait_type
,substring(qt.text,r.statement_start_offset/2,
(case when r.statement_end_offset = -1
then len(convert(nvarchar(max), qt.text)) * 2
else r.statement_end_offset end - r.statement_start_offset)/2)
as query_text --- 현재 실행 중인 일괄 처리 또는 프로시저
,qt.dbid ,qt.objectid
,r.cpu_time
,r.total_elapsed_time
,r.reads
,r.writes
,r.logical_reads
,r.scheduler_id
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(sql_handle) as qt
WHERE r.session_id > 50
ORDER BY r.scheduler_id, r.status, r.session_id;
GO