[Oracle] 오라클이 쿼리문을 이해하는 방식
Oracle

[Oracle] 오라클이 쿼리문을 이해하는 방식

쿼리 실행 방식 알아보기

단순한 쿼리 문장이어도 오라클은 쿼리를 분석하는 방식은 다르다.

전체적인 과정은,

1. 구문분석(Parsing)

2. 최적화(Optimination)

3. Row source Generator

4. 실행(Execute)

오라클이 쿼리문을 이해하는 방식

1. 구문분석(Parsing)

작성한 쿼리가 문법적으로 틀리지 않은지 확인하는 단계. 해당 쿼리를 SQL 서버가 이해할 수 있는 단위로 분해하는 과정이다. 만약, 구문이 부정확(문법이 틀리다면)하다면 이 단계에서 처리를 중단한다. 또한, 이 문장이 일괄처리(batch)에 속해 있다면 일괄 처리 전체를 중단한다.

 

2. 최적화(Optimination)

쿼리 처리에서 매우 중요한 단계로 통계나 조각 정보 등을 바탕으로 실행계획(Execution Plan)을 만들어 낸다.

1. 쿼리 분석: 검색 제한자인지 조인 조건인지 판단

2. 인덱스 선택: 통계 정보를 이용하여 인덱스 검색이나 테이블 스캔 중의 하나를 선택

3. 조인 처리: Join, Union, Group By, Order By 절을 가지고 있는지 적절한 작업 순서를 선택

이후, 출력 값으로 실행계획(Excution Plan)을 출력한다.

 

3. Row source Generator

옵티마이저 과정을 통해서 만들어진 실행계획을 실제 실행할 수 있는 코드 또는 프로시저 형태로 포멧팅 하는 작업.

Row-Source는 레코드 집합을 반복 처리하면서 사용자가 요구한 최종 결과 집합을 실제적으로 생성하는데 사용되는 제어 구조를 말한다.

 

4. 실행(Execute)

SQL 실행 엔진이 각각의 로우 소스를 실행하여 결과를 Client로 보낸다.