요르딩딩

[DB] 옵티마이저 (Optimizer) 본문

[Web]/[DB & Mybatis]

[DB] 옵티마이저 (Optimizer)

요르딩딩 2021. 6. 23. 14:32
728x90
반응형
옵티마이저란
사용자가 질의한 SQL문에 대해 최적의 실행 방법(실행계획: Execution Plan)을 결정하는 역할을 수행합니다.

옵티마이저가 최적의 실행방법을 결정하는 방식에 따라

- 규칙기반 옵티마이저(RBO, Rule Based Optimizer)

- 비용기반 옵티마이저(CBO, Cost Based Optimizer) > 현재 대부분의 데이터베이스는 비용기반 옵티마이저만 제공

로 구분됩니다.

 

- 규칙기반 옵티마이저

   규칙(우선순위)를 가지고 실행계획을 생성합니다.

- 비용기반 옵티마이저

   규칙기반 옵티마이저의 단점을 극복하기 위해 출현했습니다.

   > 대안 계획 생성기 : 동일한 결과를 생성하는 다양한 대안 계획을 생성하는 모듈

   > 비용 예측기 : 대안 계획 생성기에 의해서 생성된 대안 계획의 비용을 예측하는 모듈

   ( 비용기반 옵티마이저는 인덱스를 사용하는 비용이 전체 테이블 스캔 비용보다 크다고 판단되면 전체 테이블 스캔을 수행하는 방법으로 실행계획을 생성할 수도 있다.)



출처: https://cornswrold.tistory.com/81 [평범한개발자노트]

728x90
반응형

'[Web] > [DB & Mybatis]' 카테고리의 다른 글

Jsonb 타입 사용  (0) 2021.10.01
[DB] Data Base Connection Pool (커넥션 풀)  (0) 2021.08.20
[DB] mybatis trim  (0) 2021.06.10
[DB] 쿼리 최적화  (0) 2021.05.28
[DB] 인덱스 장점/단점  (0) 2021.05.21
Comments