본문 바로가기
SQL/Oracle

오라클 실행중인 쿼리 확인 및 강제 중지방법

by wakestand 2021. 3. 11.
반응형

오라클에서 실행중인 쿼리를 확인하는 방법은 

V$SESSION V$SQLAREA 테이블을 조회해주면 되는데

아래 쿼리를 복사 붙여넣기 해주면 된다

 

-- 현재 오라클 DB에서 사용중인 쿼리 조회
SELECT A.STATUS          -- 상태
       , A.USERNAME      -- 접속 계정명
       , A.SID           -- SID 
       , A.SERIAL#       -- 시리얼번호 
       , B.SQL_TEXT      -- 실행중인 쿼리 내용
  FROM V$SESSION A, V$SQLAREA B
 WHERE A.SQL_HASH_VALUE = B.HASH_VALUE 
   AND A.SQL_ADDRESS = B.ADDRESS 

 

 

조회 후 결과가 나오면

 

SID, SERIAL#, SQL_TEXT

세 곳만 확인해주면 되는데

 

SID - 쿼리를 수행하는 ID

SERIAL# - 시리얼번호

SQL_TEXT - ID가 현재 어느 쿼리를 수행하는지

 

여기서 실행중인 쿼리를 쭉 본 후에

강제로 중지시켜도 되겠다 싶으면

ALTER SYSTEM KILL SESSION 'SID값,SERIAL#값';

을 해 주면 해당 SID, SERIAL# 에 해당하는 값이

강제로 중지가 된다

 

강제 중지시에는

실행하던 쿼리가 모두 ROLLBACK 되고

해당 테이블에 걸려있던 LOCK이 해제되게 된다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

-- 현재 오라클 DB에서 사용중인 쿼리 조회
SELECT A.STATUS          -- 상태
       , A.USERNAME      -- 접속 계정명
       , A.SID           -- SID 
       , A.SERIAL#       -- 시리얼번호 
       , B.SQL_TEXT      -- 실행중인 쿼리 내용
  FROM V$SESSION A, V$SQLAREA B
 WHERE A.SQL_HASH_VALUE = B.HASH_VALUE 
   AND A.SQL_ADDRESS = B.ADDRESS 
   
ALTER SYSTEM KILL SESSION 'SID값,SERIAL#값';
ALTER SYSTEM KILL SESSION '221,41587';

 

반응형

댓글