▶ SQL Parser
- 사용자가 SQL문을 요청하면...
- 오라클은 맨 먼저 Paser엔진이 SQL문을 받아서 parsing 한다.
- SQL문장을 개별 구성요소를 분석하고 파싱해서 파싱트리를 만든다.
- 그 과정에서 syntax체크(문법적 오류)하고, semantic체크(의미상 오류,즉 존재하지 않은 칼럼, 권한 없는 오
브젝트 사용 여부 등등) 한다.
- 해싱 알고리즘(라이브러리 캐시의 위치값을 찾기 위해)을 이용해서 SQL 커서(SQL 구분 및 실행계획등 SQL
이 실행하기 위한 정보가 있는 AREA)가 Shared Pool에 캐시되어 있는지 확인한다.
- SQL 커서를 찾았다면 바로 실해단계로 넘어가고,
- 최적화가 필요하면 옵티마이저에게 넘긴다.
▶ Optimizer
- SQL Transformer : 최적화하기 쉬운 형태로 변화 시도.
- Plan Generator : 실해하기 위해 후보군이 될만한 실행계획 생성
- Estimator : 선택도, 카디널리티(전체row수중 출력되는 예상row수), 비용을 계산, 총 비용 계산
▶ Row-Source Generator
- Optimizer가 생성한 실행계획을 실행가능한 형태로 포맷팅 한다.
▶ SQL Engine
- SQL를 실행
이하 인덱스 태워서 block를 탐색하는 과정등 데이타를 탐색과정 발생.