오라클에서 SQL 문장(구문)을 실행하는 과정은 총 4단계로 이는 아래와 같다.
* 해석
* 최적화
* 행 소스 생성
* 구문 실행

각 단계에 대한 간략한 설명은 다음과 같다.
1. 해석
해석 단계에서는 다음과 같은 3 가지의 처리가 이루어진다.
* 구문 검사 : SQL 문이 규칙을 준수하고 있는지 검사한다.
* 의미 검사 : SQL 문의 객체가 데이터페이스에 유효한지 검사한다.
* 공유 풀 확인 : SQL 문이 다른 세션에서 처리된 적이 있는지 검사한다.
공유 풀 확인 과정은 좀 더 상세히 세분화하면 아래와 같다.
* SQL 문장의 해쉬 값을 계산한다.
* 공유 풀에서 SQL 문장의 해쉬 값과 일치하는 항목을 검색한다.
* 검색된 쿼리가 동일한 의미를 갖는지 확인한다.
2. 최적화
최적화는 옵티마이저에서 수행하게 되고 오라클 옵티마이저의 종류는 2가지로 이는 아래와 같다.
* 규칙 기반 옵티마이저 (RBO: Rule Based Optimizer )
- 쿼리를 실행하는 방법을 규정하는 정적인 규칙에 따라 쿼리를 최적화한다.
* 효율 기반 옵티마이저 (CBO: Cost Based Optimizer )
- 실제 이용된 데이터에서 얻은 통계를 이용해 쿼리를 최적화한다.
3. 행 소스 생성
행 소스 생성기는 옵티마이저의 결과를 받아 이를 실제 실행 계획으로 만들어내는 오라클 내부의 소프트웨어이다.
4. 구문 실행
구문 실행은 실행 엔진에서 담당한다. 실행 엔진은 행 소스 생성기의 결과를 받아 결과셋을 만들거나 테이블을 변경하는 프로세스이다.
[참고자료] Beginning Oracle Programming - 페이지 222 ~페이지 235














