본문 바로가기
CS

쿼리 성능 개선과 옵티마이저

by Forsaken Developer 2023. 4. 7.
728x90
728x90

쿼리 성능 개선과 옵티마이저

쿼리 성능 개선의 개념

데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 작업

쿼리 성능 개선 절차

  • 문제 있는 SQL 식별
  • 옵티마이저 통계 확인
  • SQL문 재구성
  • 인덱스 재구성
  • 실행계획 유지관리

옵티마이저의 개념

 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진

옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 부른다.

옵티마이저의 유형

  • 규칙기반 옵티마이저(RBO) : 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저
  • 비용기반 옵티마이저(CBO) : 통계 정보로부터 모든 접근 경로를 고려한 질의실행 계획을 선택하는 옵티마이저

SQL 수행과정 내 옵티마이저 역할

  • 쿼리 변환(Query Transformer) : SQL을 좀 더 일반적이고 표준화된 형태로 변환
  • 비용 산정(Estimator) : 쿼리 명령어 각 단계의 선택도, 카디널리티, 비용을 계산
  • 계획 생성(Plan Generator) : 하나의 쿼리를 수행 시 후보군이 될 만한 실행계획들을 생성

힌트 사용

SQL 성능 개선의 핵심 부분으로 옵티마이저의 실행 계획을 원하는 대로 변경 할 수 있게 한다.

옵티마이저가 항상 최선의 실행 계획을 수립할 수 없어 명시적인 힌트를 통해 실행계획을 변경한다.

728x90
반응형

'CS' 카테고리의 다른 글

공통 모듈 구현  (0) 2023.04.08
개발환경 구축  (0) 2023.04.08
절차형 SQL  (0) 2023.04.07
응용 SQL  (0) 2023.04.07
DDL, DML, DCL의 개념  (0) 2023.04.07

댓글