대용량 테이블 및 데이터를 다루다 보면 많은 양의 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값'
;
위 처럼 확인하시면 됩니다.