[ORACLE] Transaction과 TCL

privatekim·2024년 6월 24일
0

ORACLE

목록 보기
19/38

Transaction

논리적으로 DML문을 하나로 묶어서 처리하는 작업 단위

TCL

Transaction Control Language로 Transaction을 관리하는 SQL문

COMMIT

DML 작업을 영구히 저장 (저장하시겠습니까? 예Y)

ROLLBACK

DML 작업을 영구히 취소 (저장하시겠습니까? 아니오N)

SAVEPOINT

ROLLBACK 기능을 도와주는 표시자. ROLLBACK의 기준점

주의점

DCL/DDL과 DML을 한 세션에서 처리할 경우 DCL의 AUTO COMMIT기능에 의해 COMMIT을 하지 않았더라도 지금까지 작업한 Transaction이 commit처리되어 문제가 발생할 수 있다.

왜냐하면 DCL작업을 처리하면서 내부적으로 dictionacry table에 transaction이 수행되며 그 결과를 반영하기 위해 commit처리를 하기 때문이다.

select * from tab$; -- 테이블에 대한 정보
select * from col$; -- 칼럼에 대한 정보
-- create를 실행하면 위 두 테이블에 대한 insert작업이 돌아간다.

Auto Commit

  • DDL(creat, alter, drop, rename, truncate, comment) -> data dictionary 갱신 조작
  • DCL(grant, revoke)
  • sqlplus에서 exit를 수행하여 종료.
  • sqlplus에서 다른 유저로 접속할 때(conn)

Auto Rollback

  • sqlplus를 비정상적으로 종료할 때 (그냥 창 닫기)
  • DML작업을 수행하고 있는 컴퓨터가 비정상적인 종료 수행.
  • client - server 환경에서 네트워크 장애가 발생하는 경우.

0개의 댓글