오라클에서는 대량의 대이터 Insert 가 발생하게 되면 해당 블록을 찾아서 캐시에 올리고 다시 내려쓰는 작업을 해야 하기 때문에 느릴 수 밖에 없다. 그래서 오라클은 미리 리두로그에 기록하게 되는데 이를 선로그기법이라고 하며 빠른 commit 이라고 한다.
사용자는 데이터를 insert 하고 commit 을 하게 되면 데이터파일에는 기록이 되지 않았지만, 리두로그에 모두 기록되어 있으므로 commit 이 완료 될 수 있다.
1. 사용자가 insert 명령을 날림
2. 리두에 기록(선로그)
3. commit 날림
4. 컨트롤파일에 commit SCN 번호 기록됨 (commit 완료)
log switch 가 발생시
1. ckpt 가 checkpoint 발생시킴
- DBWn 에게 checkpointSCN 을 알려준다.
- 바로 컨트롤 파일에 checkpointSCN 을 기록한다.
2. DBWn 은 checkpoint 가 발생하여 리두로그에 있는 데이터를 기록하기 시작한다.
- 데이터 파일에 데이터 내려쓰고 헤더에 checkpointSCN 기록한다.
'Oracle > Architecture' 카테고리의 다른 글
Block Cleanout (0) | 2012.05.15 |
---|---|
Large Pool (0) | 2012.04.13 |
다중 Block SIZE (0) | 2012.04.12 |
SORT와 PGA_AGGREGATE_TARGET (2) | 2012.04.10 |
[Storage - 3] Segment (0) | 2012.01.27 |