티스토리 뷰
UPDATE 실행 원리
UPDATE 실행 원리
select 문장의 실행 단계(parse -> bind -> execute -> fetch) 와 비슷하나 dml(insert, update, delete, merge)문
장의 실행단계에는 추출(fetch)단계가 없고 대신 실행(execute)단계가 조금더 복잡하다.
일단 soft parse 하고 실패하면 hard parse해서 서버프로세스는 실행계획을 가지고 library cache에 등록후 실행
(execute)를 수행한다. Soft parse에서는 문법검사, 의미검사후 권한검사를 수행하고 shared pool의 library cache
에서 실행계획이 있는지 확인한다. 실행계획이 없을 경우 hard parse를 수행해서 옵티마이져에게 실행계획을 생
성해달라고 요청한다.
parse과정이 끝나면 dbc에 member테이블에 mem_num가 1000번이 멤버가 있는지 확인하고 없으면 데이터 파일로 가서 해당 테이블을 dbc로 복사해온다.
그리고 서버프로세스는 변경되는 transaction(change vector)을 redo log buffer에 먼저 기록한다. 그리고 유관순
(원본 데이터)을 undo segment에 기록한후 dbc의 내용을 변경한다. commit을 치게되면 redo log는 자동 삭제되고, 치지 않을경우 다른 사용자가 데이터를 불러오면 undo에서 가지고 오게된다.
이것을 일관성 읽기(CR- CONSISTENT READ) 라고 한다.
'ORACLE DB > Oracle DB Admin' 카테고리의 다른 글
COMMIT PARAMETER (0) | 2013.03.11 |
---|---|
SQL 문장 실행 원리 (0) | 2013.03.11 |
ORACLE BACKGROUND PROCESS (0) | 2013.03.11 |
ORACLE 시작, 단계별 INSTANCE OPEN (0) | 2013.03.11 |
ORACLE INSTANCE 종료 (0) | 2013.03.11 |