반응형
옵티마이저란?
- SQL의 문법적 오류를 확인한다
- SQL의 실행 계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어
- 가장 빠른 데이터 접근 경로를 작성하고 채택한다. (동일한 결과가 나오는 SQL도 어떻게 실행하느냐에 따라 성능이 달라진다)
ex) A 테이블과 B 테이블의 and연산을 할 때 크기가 작은 테이블을 먼저 읽어올 때 속도가 빨라진다.
옵티마이저 특징
- 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 산정한다
- 최저비용을 가지고 있는 계획을 선택해서 SQL을 실행한다.
옵티마이저 실행 계획
- 개발자가 sql실행시 파싱(parsing)을 실행하여 sql의 문법 검사 및 구문분석 수행
- 옵티마이저가 규칙기반 or 비용기반 옵티마이저를 사용하여 실행 계획을 수립함(기본적으로는 통계정보를 이용하는 비용기반 옵티마이저를 사용)
- 실행계획 수립이 완료되면 최종적으로 SQL을 실행하고 실행이 완료되면 데이터를 인출(fetch)한다.
기준에 따른 옵티마이저의 분류(규칙, 비용)
1. 규칙 기준 옵티마이저
- 인덱스 구조나 비교 연산자에 따른 순위 부여를 기준으로 최적 경로를 설정
- 판단이 규칙적이고 분명하여 경로 예측 가능
- 통계 정보라는 현실적 요소를 반영하지 않으므로 오차 발생 가능
2. 비용 기준 옵티마이저
- 처리 방법들에 대한 비용을 산정한 뒤 가장 적은 비용이 소요되는 방법 선택
- 통계 정보 관리를 통한 최적화 제어를 통해 성능 보장
- 실행 계획에 대한 예측 및 제어 어려움
반응형