나의 개발일지

[Oracle] Parsing(구문 분석) 본문

Oracle SQL 엔진

[Oracle] Parsing(구문 분석)

YoonJuHan 2022. 12. 20. 18:44
SQL문 실행 과정
  • Soft Parsing : Library Cache에 이전에 실행했던 쿼리가 있는 경우 실행
  • Hard Parsing : Library Cache에 이전에 실행했던 쿼리가 없는 경우 실행

Parsing Syntax Check (문법 검사) - SQL문의 철자 및 문법에 이상이 없는지를 확인
Semantic Check
(오브젝트, 권한 검사)
- SQL문에 사용된 테이블 이름, 컬럼 등이 정확한지 검사
- SQL문을 사용하는 사용자가 해당 권한이 충분한지 검사
Shared pool Check
(Library Cache 확인)
- Library Cache에 실행 계획이 있는지 확인
- 있으면 Soft Parsing
- 없으면 Hard Parsing
Soft Parsing Execution (수행) - Library Cache에 저장되어 있는 쿼리 실행 계획을 바로 사용

Hard Parsing

Optimization
(쿼리 변환, 최적화)
- 최적화한 쿼리 실행 계획을 만든다.
- 1. Query Transform : 쿼리 블록 단위로 변형된 쿼리 생산
- 2. Plan Generator : 쿼리 실행 계획 생성
- 3. Estimator : 쿼리 실행 계획들의 Cost를 계산해 최소 비용의 SQL문장을
   Row source generation에게 전달
Row source generation
(프로그램 소스 생성)
- DB 엔진이 실행할 수 있는 프로그램 소스 생성
Execution (수행) - 위 2가지 과정을 거쳐 실행
Comments