티스토리 뷰

ORACLE DB/Oracle DB Admin

COMMIT PARAMETER

sai505 2013. 3. 11. 19:14

COMMIT PARAMETER


COMMIT PARAMETER 확인방법


SQL> show parameter commit;



commit_point_strength : 분산 데이터베이스 환경에서 2-phase commit 에서 사용

commit_write : commit 후 LGWR이 REDO LOG FILE에 기록하는 4가지 방식

1. WAIT : 변경된 트랜잭셕이 REDO LOG FILE에 기록될 때까지 기다림

2. NOWAIT : 변경된 드랜잭션이 REDO LOG FILE에 기록될 때까지 기다리지 않음

3. IMMEDIATE : commit 후 즉시 REDO LOG FILE에 기록시작

4. BATCH : commit 이 들어와도 일정 시간동안 모아서 한꺼번에 기록


* 보통은 4가지 방식을 2개씩 조합해서 사용한다

예) immediate + wait ( commit 수행하면 즉시 redo log file에 기록 요청하고 기록 완료 할때까지 기다림)

immediate + nowait ( commit 수행하면 즉시 redo log file에 기록 요청하고 다른 작업을 진행할 수 있게 기록 완료 될때 까지 기다리지 않음)


* 비동기식 커밋 (ASYCHRONOUS COMMIT) : BATCH 나 NOWAIT 같이 REDO LOG FILE에 기록이 완료되지 않아도 다른 작업을 할 수 있게 성능을 높이는 방식 (10g 이후부터, transaction이 많은 OLTP환경에서는 비추)

* 동기식 커밋 : LGWR 이 기록완료후 후속작업하는 방식. 안정성 높음

변경 방법


SQL> alter system set commit_logging = immediate, nowait;



max_commit_propagation_delay : 양쪽 instance간 commit후 전송시간 제어.  

기본값이 0이면 commit후 바로전송 ( broadcast on commit : BOC)

* Piggyback 방식 : commit후 바로 보내지 않고 다른 메시지 갈때 업혀서 보내는 방식


- ORACLE 은 commit을 최대한 빨리 수행하기 위해 DB Buffer Cache에서 안내려 쓰고 Redo Log를 내려쓰고 이것을 FAST COMMIT 이라고 한다. ORACLE 은 commit이 완벽하게 수행해야하는 Block Cleanout (DataBlock 에 걸려있는 Lock 해제) 을 완료해야 하지만 변경이 많을 경우 작업시간이 오래 걸리기 때문에 commit후 해당 블록을 처음 액세스 하는 시점에 해제를 하는 Delayed Block Clean Out 이나 Commit Cleanout 을 수행한다.


'ORACLE DB > Oracle DB Admin' 카테고리의 다른 글

SCN(SYSTEM CHANGE NUMBER)  (0) 2013.03.11
CHECKPOINT  (0) 2013.03.11
SQL 문장 실행 원리  (0) 2013.03.11
UPDATA 실행 원리  (0) 2013.03.11
ORACLE BACKGROUND PROCESS  (0) 2013.03.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함