옵티마이저(Optimizer)란?
- SQL 개발자가 SQL을 작성하여 실행할 때, 옵티마이저는 SQL을 어떻게 실행할 것인지를 계획하게 된다.
- SQL 실행 계획(Execution Plan)을 수립하고 SQL을 실행한다.
- 옵티마이저는 SQL의 실행 계획을 수립하고 SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어이다.
- 동일한 결과가 나오는 SQL도 어떻게 실행하느냐에 따라서 성능이 달라지기에, SQL 성능에 옵티마이저는 아주 중요한 역할을 한다.
옵티마이저 특징
- 옵티마이저는 데이터 딕셔너리(Data Dictionary)에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 산정한다.
- 옵티마이저는 여러 개의 실행 계획 중에서 최저 비용을 가지고 있는 계획을 선택해서 SQL을 실행한다.
옵티마이저의 필요성
- SQL 개발자가 작성한 SQL문을 어떻게 실행하느냐에 따라 성능이 달라진다.
옵티마이저의 실행 방법
-
개발자가 SQL을 실행하면 파싱(Parsing)을 실행해서 SQL의 문법 검사 및 구문 분석을 수행한다.
-
구문 분석이 완료되면, 옵티마이저가 규칙 기반 혹은 비용 기반으로 실행 계획을 수립한다.
-
실행 수립이 완료되면, 최종적으로 SQL을 실행하고, 실행이 완료되면 데이터를 인출(Fetch)한다.
'DB > Oracle' 카테고리의 다른 글
| [ORACLE] Query Hint(쿼리 힌트) (0) | 2021.01.17 |
|---|---|
| [ORACLE] TRUNC (시간, 소숫점 초기화) (0) | 2020.11.30 |
| [ORACLE] 이전 테이블에서 새 테이블로 데이터 이동 (0) | 2020.11.30 |
| [ORACLE] VARCHAR2 NVARCHAR2 차이점 (0) | 2020.11.30 |
| [ORACLE] 임시 더미데이터 만들기 (0) | 2020.11.27 |