1. SQL 파싱과 최적화

SQL 최적화

DBMS 내부에서 실행계획을 만들고 컴파일 해서 실행 가능한 상태로 만드는 것 자체를 SQL 최적화라고한다.

SQL 최적화에는 단계가 있다.

1) SQL 파싱 : 사용자에게 전달 받은 SQL을 파싱한다.

2) SQL 최적화 : Optimizer가 미리 수집한 통계 정보 등을 통하여 실행 경로들을 생성한 후 그중 가장 Cost가 낮은 경로를 선택한다.

3) 로우 소스 생성 : 실제 가능한 코드로 포맷팅하는 단계이다.

SQL Optimizer

DBMS의 핵심 엔진으로 SQL을 가장 효율적으로 수행 할 수 있는 데이터 엑세스 경로를 찾는 역할을 한다.

<엑세스 경로를 찾는 과정>

  1. 쿼리를 수행하는데 후보군이 될만한 실행 계획들을 찾아낸다.

  2. 데이터 딕셔너리에 수집해둔 통계 및 시스템 정보를 이용해 각 실행 계획의 예상 비용을 산정한다.

  3. 최저 비용을 나타내는 실행 계획을 선택한다.

<aside> 💡 실행계획이란 쿼리를 수행하는 동안 발생할 것으로 예상하는 I/O 횟수 또는 예상 시간

</aside>