본문 바로가기
CS(Computer Science)/데이터베이스

[ORACLE] 오라클 이해하기

by whdgus928 2023. 8. 31.

오라클에서 SQL은 4단계를 거쳐서 수행된다.

 

1. 파싱(Parser)
2. 옵티마이저(Query Optimizer)
3. 로우소스 생성(Row Source Generator)
4. SQL 실행(SQL Execution Engine)


1) 파싱(Parser)
파싱 단계는 SQL의 구문(syntax)과 의미(semantics) 검사를 수행한다. Syntax 체크는 SQL 문장의 문법을 검증하는 단계이고, Semantic 체크는 SQL 문장내의 오브젝트가 존재하는지, 권한이 존재하는지 등을 검증한다. 이 단계가 끝나면, SQL 문은 파싱 트리(parsed tree) 형태로 변형되어 optimizer에게 넘겨진다.


2) 옵티마이저(Query Optimizer)
옵티마이저에서는 앞에서 넘겨받은 파싱 트리를 이용해서 최적의 실행 계획을 고른다. 이 때 SQL의 결과를 처리하기 위한 효율적인 방법을 결정하기 위해 내부적인 규칙을 사용한다.


3) 로우소스 생성(Row Source Generator)
로우소스 생성은 Optimizer에서 넘겨받은 실행 계획을 내부적으로 처리하는 자세한 방법을 생성하는 단계이다. ‘로우 소스’란 실행 계획을 실제로 구현하는 인터페이스 각각을 지칭하는 말로, 테이블 액세스 방법, 조인 방법, 그리고 정렬
(sorting) 등을 위한 다양한 로우 소스가 제공된다. 따라서, 이 단계에서는 실행 계획에 해당하는 트리 구조의 로우 소스들이 생성된다.

4) SQL 실행(SQL Execution Engine)
SQL 실행에서는 위에서 생성된 로우 소스를 SQL 수행 엔진에서 수행해서 결과를 사용자에게 돌려주는 과정이다. 여기서 주목할 점은, 소프트 파싱(soft parsing)과 하드 파싱(hard parsing)은 크게 옵티마이저 단계의 포함 여부에 따른 차이라는 것이다. 즉, 소프트 파싱은 이미 최적화를 한 번 수행한 SQL 질의에 대해 옵티마이저 단계와 로우 소스 생성 단계를 생략하는 것이고, 하드 파싱은 이 두 단계를 새로 수행하는 것이다. 따라서, 하드 파싱은 통계정보 접근과 실행 계획 탐색 때문에 시간이 많이 걸린다.

반응형

댓글