반응형

구글에서 주워온이미지..문제가 된다면 죄송합니다...봐주세요

지난 포스팅 "실시간으로 10초이상 걸리는 쿼리 확인하기" 에 이어,

이번에는 테이블 자체에 LOCK이 걸린 내역을 조회하는 쿼리이다.

※지난 포스팅은 아래 링크 참조

 

[오라클] 실시간으로 10초이상 걸리는 쿼리 확인하기

현재 DB서버가 폭주중이라면, 먼저 장시간 수행중인 쿼리들이 없는지 1차적으로 체크해야 할 필요가있다. 때에 따라 확인하는 것 뿐만 아니라, 강제로 KILL하여 자원의 안정적인 확보가 필요하다.

masswhale.tistory.com


SELECT DISTINCT X.SESSION_ID, A.SERIAL#, D.OBJECT_NAME, A.MACHINE, A.TERMINAL,
       A.PROGRAM, A.LOGON_TIME, 'ALTER SYSTEM KILL SESSION'''||A.SID||', '||A.SERIAL#||''';' AS qry
FROM GV$LOCKED_OBJECT X, GV$SESSION A, DBA_OBJECTS D
WHERE  X.SESSION_ID = A.SID
AND X.OBJECT_ID = D.OBJECT_ID
ORDER BY LOGON_TIME;

마찬가지로 오라클의 Dynamic Performance View로 부터 조회하는 방식이다.

Lock 세션이 발견되어 DB서버가 과부하다 못해 죽기 직전에 쓰는 응급조치라고 할수 있겠다.

SELECT절의 가장 끝 컬럼에 "ALTER SYSTEM KILL SESSION~"을 넣어뒀으니, 복사 후 바로 사용할 수 있다.

DB에 자주 무리가 가거나, 별도의 모니터링 툴이 없으신 곳은 이전포스팅의 내용과 현재 포스팅의 내용을 

잘 참조하셔서 별도의 모듈을 만들면, 굉장한 도움이 될것으로 예상된다.

다음포스팅에서도 관련된 정보 포스팅 예정!

 

많은 분들에게 도움되길!

※오라클만 됩니다.

반응형

+ Recent posts