Dev/DataBase
[Oracle] 장시간 실행 SQL 확인
nakanara
2025. 4. 24. 16:01
반응형
이상한 SQL 등 장시간 사용하고 있는 쿼리를 Oracle환경에서 확인이 필요한 경우,
활성화된 세션을 기준으로 실행된 시간을 체크하는 SQL
SELECT
s.sid,
s.serial#,
s.username,
s.status,
s.machine,
s.program,
s.module,
s.event,
s.sql_id,
q.sql_text,
ROUND(s.last_call_et / 60, 1) AS "run(Min)",
s.logon_time
FROM
v$session s
JOIN v$process p ON s.paddr = p.addr
LEFT JOIN v$sql q ON s.sql_id = q.sql_id
WHERE
s.username IS NOT NULL
AND s.status = 'ACTIVE'
ORDER BY
s.last_call_et DESC;
* v$session.last_call_et = 세션이 마지막으로 호출(실행)된 이후 경과한 시간 (초)
# 세션 상태 별 last_call_et 의미
* ACTIVE: 현재 실행 중인 SQL의 실행 시간 (초)
* INACTIVE SQL 실행이 끝난 후 대기 중인 시간 (초)
ex)
ACTIVE이고 last_call_et = 120: 현재 SQL이 2분 동안 실행 중
INACTIVE이고 last_call_et = 3600: SQL 실행 후 1시간 동안 아무것도 안 하고 있는 세션
반응형