1. 사용자가 SQL 문장 수행

2. 유저 프로세스가 SQL문 서버로 전달

ex) SQL developer , Toad , Orange ...

3. 서버쪽에서 작업을 수행하는 서버 프로세스에게 전달.

4. 유저프로세스는 결과가 나올때까지 기다림


전체적인 흐름

Parse(구문분석) -> Bind(값 치환) -> Execute(실행) -> Fetch(인출)


1) Parse (실행계획을 만들거나 찾는 단계. Shared Pool 메모리 공간 사용)

SELECT 문장을 예로들면

첫째, 문법검사

select , from , where

둘쨰, 의미검사

* , emp , empno=7900;

셋째, 권한검사

넷쨰, 실행계획 (파싱 하는 이유)

네비게이션과도 같은 역할을 하는 옵티마이져(계획 세워주는 역할)가 딕셔너리를 보고 작업을 한다.

Shared Pool

-Library Cache

-Dictionary Cache

Hard Parse : SQL과 실행계획을 캐시에서 찾지 못해 최적화 과정을 거치고 나서 실행단계로 넘어가는 경우

Sofr Parse : SQL과 실행계획을 캐시에서 찾아 곧바로 실행단계로 넘어가는 경우

2) Bind

사용자에게 정보를 받아 바꿔치기 하는 것.

ex) 회원 로그인 -> 아이디, 비번 받아서 바꿔치기

3) Execute

하드디스크의 데이터 파일에서 데이터가 들어있는 블락을 찾아 DB 버퍼캐시로 복사해 오는 과정.

작업을 위해서는 해당 테이블이 반드시 DB 버퍼캐시에 존재해야하는데 만약 존재하지 않으면

서버프로세스는 원하는 블락을 찾아 버퍼캐시로 복사 후 작업한다.

무조건 블락 단위로 움직인다. 원하는게 적든 많든 블락 단위로 퍼올려짐.

4) Fetch

블락단위로 올라온 데이터 중에 원하는 데이터만 골라내는 과정.




내용출처 : 오라클 관리실무 책(서진수)



'Oracle Admin' 카테고리의 다른 글

data file , redo log file , control file 이동 간단정리  (0) 2015.04.02
Tablespace 와 Data File 관리  (0) 2015.04.01
pfile , spfile 생성 및 관리  (0) 2015.03.30
Oracle Background Process  (0) 2015.03.29
Oracle Architecture  (0) 2015.03.29

설정

트랙백

댓글