Database/Oracle
[Oracle]V$ 뷰로 실시간 DB 분석하기 – 세션, 락, 성능 모니터링 쿼리 모음
봉의일상
2025. 2. 10. 22:54
1. 현재 실행 중인 세션 및 SQL 조회 (V$SESSION, V$SQL)
-- 현재 실행 중인 세션 확인
SELECT SID, SERIAL#, USERNAME, STATUS, MACHINE, PROGRAM FROM V$SESSION WHERE STATUS = 'ACTIVE';
-- 실행 중인 SQL 조회
SELECT S.SID, S.SERIAL#, S.USERNAME, SQ.SQL_TEXT
FROM V$SESSION S
JOIN V$SQL SQ
ON S.SQL_ID = SQ.SQL_ID
WHERE S.STATUS = 'ACTIVE';
2. 락 걸린 세션 찾기 (V$LOCK, V$SESSION)
-- 락 걸린 세션 확인
SELECT L.SID, S.SERIAL#, S.USERNAME, L.TYPE, L.MODE_HELD
FROM V$LOCK L
JOIN V$SESSION S
ON L.SID = S.SID
WHERE L.BLOCK = 1;
3. UNDO 테이블스페이스 사용량 (V$UNDOSTAT)
-- 최근 1시간 동안 UNDO 사용량 조회
SELECT BEGIN_TIME, END_TIME, UNDOTSN, UNDOBLKS, TXNCOUNT
FROM V$UNDOSTAT
WHERE BEGIN_TIME > SYSDATE - 1/24
ORDER BY BEGIN_TIME DESC;
4. 실행 계획 및 성능 분석 (V$SQL_PLAN)
-- 특정 SQL 실행 계획 조회
SELECT * FROM V$SQL_PLAN WHERE SQL_ID = 'SQL_ID_값';