Search

옵티마이저

정의

SQL 쿼리의 최적 실행 계획을 결정하는 핵심 구성 요소
옵티마이저는 쿼리를 효율적으로 실행하기 위한 최적의 경로를 찾아내고 데이터베이스 성능을 최적화하는 역할

최적화 과정

1.
쿼리 파싱
a.
먼저 SQL 쿼리를 파싱
b.
문법 오류 확인, 쿼리가 사용하는 테이블과 컬럼, 조건 등을 식별
2.
최적화 및 실행 계획 생성
a.
인덱스 선택 어떤 인덱스가 WHERE 절에 있는 조건을 만족시키기 위해 가장 효율적인지 판단
b.
조인 순서 결정 여러 테이블 간의 조인이 있을 경우, 어떤 순서로 조인할 것인지 결정
c.
조인 유형 선택 내부 조인, 외부 조인 등 어떤 유형의 조인을 사용할 것인지 결정
3.
비용 기반 선택 각각의 가능한 실행 계획에 대해 예상되는 비용(디스크 I/O, CPU 시간 등)을 계산하고 가장 낮은 비용으로 예상되는 계획을 선택
4.
쿼리 실행 마지막으로 선택된 최적의 실행 계획에 따라 SQL 쿼리가 실제로 수행
옵티마이저 분석에서 실행 계획이란?
⇒ 데이터를 검색하거나 조작하는 데 필요한 가장 효율적인 방법을 정의하며, 데이터베이스의 성능을 최적화하는 데 중요한 역할을 합니다.
옵티마이저 분석에서 가장 효율적인 방식을 판단하는 기준은?
옵티마이저 분석에서 쿼리를 실행하는 방법을 결정하는데 쿼리를 실행하는 방법의 종류는 어떤게 있는가?