h1.SQL 처리과정
h3.Parsing
-Syntactic : 문법상의 오류 체크
-Semantic checks : 의미상의 오류 체크
-Statement Matching : Shared Pool에 캐싱여부 확인
* Shared Pool 에서 동일한 SQL을 찾았다 하더라도 파싱을 요청한 사용자가 다르다면 새로운 SQL커서 생성
h3.Optimization
- Query Transformation : 옵티마이저가 수행하기에 적합하게 쿼리문 최적화
- Estimator(Determine object costs and cardinalities) : 실행계획 전체에 대한 총 비용을 계산
- Plan Generator(Cost different join orders) : 후보군이 될만한 실행계획들을 생성
h3.Row Source Generation
- Row Source Generation(Build structures for runtime) : 실행 가능한 코드 또는 프로시저 형태로 포맷팅하는 작업을 담당
h3.Excution
- 실행계획 적용
- 실행에 필요한 작업수행
- DB/IO 작업
h3.정리
SQL 최적화 단계에서는 순식간이긴 하지만 굉장히 많은 일들이 내부적으로 수행되고 있으며, 따라서 가급적 이 단계를 반복적으로 수행하지
않도록 하기 위해 같은 형태의 SQL이 반복적으로 파싱되지 않도록 바인딩 변수를 적극적으로 사용해야 하고 경우에 따라서는 캐싱 여부를 확인하는
작업(소프트 파싱)까지도 생략하기 위한 커서 공유 기법들을 사용해야 한다.