ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Database ] Optimizer 옵티마이저
    공부 !/Computer Science 2022. 4. 26. 00:05
    반응형

    Optimizer

    이름부터 멋있는 옵티마이저 .. 무엇일까 !

    옵티마이저란 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진 이다

     

    옵티마이저는 오브젝트의 통계, 시스템 통계 등의 정보를 사용하여 예상되는 비용을 산정하게 된다

    여러 개의 실행 계획 중에서 최저 비용을 가지고 있는 계획을 선택하여 SQL 를 실행한다

     

    실행계획을 확인하는 방법은 explain 을 쿼리문 앞에 붙여주면 된다

    아래 예시는 학생 테이블의 실행 계획을 확인하는 쿼리문이다

    explain select * from student

    옵티마이저 종류

    규칙기반 옵티마이저

    숫자가 낮을수록 높은 우선순위

    미리 정해놓은 규칙 ( 엑세스 경로별 우선순위 )에 따라 엑세스 경로를 평가하고 실행계획을 선택한다

     

    비용기반 옵티마이저

    예상되는 비용 ( 쿼리 수행에 필요한 시간 ) 을 기반으로 최적화를 수행한다

    미리 구한 테이블과 인덱스에 대한 통계정보를 기반으로 각 오퍼레이션 단계별 예상 비용을 산정하고

    총 비용이 가장 낮은 계획을 선택한다


    옵티마이저 필요성

    SQL 개발자가 작성한 SQL 문을 어떻게 실행하느냐에 따라 성능이 달라진다

    그렇기 때문에 최적의 실행 계획을 관리하여 일반적인 성능을 보장할 수 있다

    반응형

    댓글

Designed by SooJI