RollBack 중인지 확인하고 싶을 때(오라클)

By | 2024-11-21

대용량 테이블 및 데이터를 다루다 보면 많은 양의 Insert, Delete, Update를 한 후, Rollback을 해야하는 경우가 있습니다.

이 때, 롤백명령을 한 후 이게 정말 롤백이 되고 있나 싶을 정도로 오랫동안 안 끊기고 있는 경우가 있습니다.

그럴 때 롤백이 되고 있는지를 확인하고 싶을 때 사용하는 SQL을 하나 소개합니다.

먼저, 동작시킨 sql_id 의 값은 알아야 합니다.

다음을 실행시켜서 여기에 결과가 나오고 있으면 롤백을 하고 있는 겁니다.

SELECT S.SID
      ,S.SERIAL#
      ,S.USERNAME
      ,T.START_DATE
      ,T.USED_UBLK
      ,T.USED_UREC
      ,S.EVENT
      ,R.NAME
  FROM V$SESSION S
      ,V$TRANSACTION T
      ,V$ROLLNAME R
 WHERE S.TADDR = T.ADDR
   AND T.XIDUSN = R.USN
   AND S.PREV_SQL_ID = 'sqlid값'
;

위 처럼 확인하시면 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다