티스토리 뷰
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 |