DB/SQL

옵티마이저

씩씩한 IT블로그 2022. 2. 18. 11:05
반응형

옵티마이저란?

- SQL의 문법적 오류를 확인한다

- SQL의 실행 계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어

- 가장 빠른 데이터 접근 경로를 작성하고 채택한다. (동일한 결과가 나오는 SQL도 어떻게 실행하느냐에 따라 성능이 달라진다)

ex) A 테이블과 B 테이블의 and연산을 할 때 크기가 작은 테이블을 먼저 읽어올 때 속도가 빨라진다.

 

옵티마이저 특징

- 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 산정한다

- 최저비용을 가지고 있는 계획을 선택해서 SQL을 실행한다.

 

옵티마이저 실행 계획

- 개발자가 sql실행시 파싱(parsing)을 실행하여 sql의 문법 검사 및 구문분석 수행

- 옵티마이저가 규칙기반 or 비용기반 옵티마이저를 사용하여 실행 계획을 수립함(기본적으로는 통계정보를 이용하는 비용기반 옵티마이저를 사용)

- 실행계획 수립이 완료되면 최종적으로 SQL을 실행하고 실행이 완료되면 데이터를 인출(fetch)한다.

 

기준에 따른 옵티마이저의 분류(규칙, 비용)

1. 규칙 기준 옵티마이저

    - 인덱스 구조나 비교 연산자에 따른 순위 부여를 기준으로 최적 경로를 설정

    - 판단이 규칙적이고 분명하여 경로 예측 가능

    - 통계 정보라는 현실적 요소를 반영하지 않으므로 오차 발생 가능

 

2. 비용 기준 옵티마이저

    - 처리 방법들에 대한 비용을 산정한 뒤 가장 적은 비용이 소요되는 방법 선택

    - 통계 정보 관리를 통한 최적화 제어를 통해 성능 보장

    - 실행 계획에 대한 예측 및 제어 어려움

 

반응형