[개발] 오래 걸리는 작업 확인 방법

메이야 2026.09.03 22:31 댓글 0 조회 200

1. 실행 중인 요청 조회

SQL
SELECT 
    r.session_id,
    r.start_time,
    r.status,
    r.command,
    r.cpu_time,
    r.total_elapsed_time,
    r.wait_type,
    r.wait_time,
    r.blocking_session_id,
    t.text AS sql_text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
ORDER BY r.total_elapsed_time DESC;
  • total_elapsed_time → 실행된 시간(ms)
  • wait_type / wait_time → 어떤 리소스를 기다리고 있는지
  • blocking_session_id → 다른 세션에 의해 막혀 있는지 여부
  • sql_text → 실제 실행 중인 SQL 문장


2. 세션별 누적 리소스 사용량 확인

SQL
 SELECT 
    s.session_id,
    s.login_name,
    s.host_name,
    r.cpu_time,
    r.total_elapsed_time,
    r.logical_reads,
    r.writes,
    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
ORDER BY r.cpu_time DESC;

→ CPU, I/O를 많이 쓰는 세션을 확인 가능


📌 정리하면:

  • **blocking_session_id**는 "누가 막고 있는지"를 알려줌
  • **total_elapsed_time**과 **wait_type**을 보면 "어떤 작업이 오래 걸리는지"를 알 수 있음
목록
댓글 0