본문 바로가기
자격증/SQL개발자(SQLD)

5-1장. SQL 최적화 기본 원리(옵티마이저와 실행계획)

by 김엉배 2023. 6. 3.
728x90
반응형

 

SQLD 단원별 목록으로


1. 옵티마이저

  • 옵티마이저(Optimizer)는 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다.


가) 규칙기반 옵티마이저

  • 규칙기반 옵티마이저가 실행계획을 생성할 때 참조하는 정보에는 SQL문을 실행하기 위해서 이용 가능한 인덱 스 유무와 (유일, 비유일, 단일, 복합 인덱스) 종류, SQL문에서 사용하는 연산자(=, <, <>, LIKE, BETWEEN 등)의 종류 그리고 SQL문에서 참조하는 객체(힙 테이블, 클러스터 테이 블 등)의 종류 등이 있다.

규칙 1. Single row by rowid : ROWID를 통해서 테이블에서 하나의 행을 액세스하는 방식이다.

규칙 4. Single row by unique or primary key : 유일 인덱스(Unique Index)를 통해서 하나의 행을 액세스 하는 방식이다.

규칙 8. Composite index: 복합 인덱스에 동등(‘=’ 연산자) 조건으로 검색하는 경우

규칙 9. Single column index: 단일 칼럼 인덱스에 ‘=’ 조건으로 검색하는 경우

규칙 10. Bounded range search on indexed columns: 인덱스가 생성되어 있는 칼럼에 양쪽 범위를 한정하는 형태로 검색하는 방식

규칙 11. Unbounded range search on indexed columns: 인덱스가 생성되어 있는 칼럼에 한쪽 범위만 한정하는 형태로 검색 방식

규칙 15. Full table scan: 전체 테이블을 액세스하면서 조건절에 주어진 조건을 만족하는 행만을 결과로 추출한다.

 

나) 비용기반 옵티마이저

  • 비용기반 옵티마이저는 SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식이다.
  • 비용이란 SQL문을 처리하기 위해 예상되는 소요시간 또는 자원 사용량을 의미한다.

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

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

 

 


2. 실행계획

  • 실행계획(Execution Plan)이란 SQL에서 요구한 사항을 처리하기 위한 절차와 방법을 의미한다.
  • 실행계획을 구성하는 요소에는 조인 순서(Join Order), 조인 기법 (Join Method), 액세스 기법(Access Method), 최적화 정보(Optimization Information), 연산(Operation) 등이 있다.

  • 조인 기법: 두 개의 테이블을 조인할 때 사용할 수 있는 방법으로서 여기에는 NL Join, Hash Join, Sort Merge Join 등이 있다.
  • 액세스 기법: 하나의 테이블을 액세스 할 때 사용할 수 있는 방법. 테이블을 액세스 하는 인덱스 스캔(Index Scan)과 테이블 전체를 모두 읽으면서 조건을 만족하는 행을 찾는 전체 테이블 스캔(Full Table Scan) 등이 있다.
  • 최적화 정보: 옵티마이저가 실행계획의 각 단계마다 예상되는 비용 사항을 표시한 것이다.
  • 연산: 여러 가지 조작을 통해서 원하는 결과를 얻어내는 일련의 작업이다. 연산에는 조인 기법(NL Join, Hash Join, Sort Merge Join 등), 액세스 기법(인덱스 스캔, 전 체 테이블 스캔 등), 필터, 정렬, 집계, 뷰 등 다양한 종류가 존재한다.

 

 


3. SQL 처리 흐름도

  • SQL의 내부적인 처리 절차를 시각적으로 표현 한 도표이다. 이것은 실행계획을 시각화한 것이다.

728x90
반응형