본문 바로가기

옵티마이저3

[J STORY] SQLP - 옵티마이저 1. 옵티마이저 옵티마이저란? SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. SQL 최적화 과정 사용자가 던진 쿼리 수행을 위해, 후보군이 될만한 실행계획을 찾는다. 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정한다. 각 실행계획을 비교해서 최저비용을 갖는 하나를 선택한다. 나. 옵티마이저 종류 1) 규칙기반 옵티마이저( = Heuristic 옵티마이저 ) 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택한다. 규칙? 액세스 경로별 우선순위로서, 인덱스 구조, 연산자, 조건절 형태가 순위를 절정짓는 주요인다. 2) 비용기반 옵티마이저 테이블과 인덱스에 대한 여러 통계정보를 기초로 각 오퍼레이션 단.. 2021. 4. 28.
[J STORY] SQLP - SQL 파싱 부하 1. SQL 처리과정 사용자는 구조화된 질의언어(SQL, Structured Query Language)를 통해 사용자가 원하는 결과집합을 정의 DBMS는 사용자의 SQL을 SQL옵티마이저를 통해 실행계획으로 작성해줌 가. SQL 파싱(Parsing) SQL을 실행하면 제일먼저 SQL 파서(parser)가 SQL 문장에 문법적 오류가 없는지 검사(Syntax 검사) 문법적 오류가 없다면 의미상 오류가 없는지 검사(Semantic 검사, 오브젝트 존재유무등) 검사를 다 마치면, 사용자가 발생한 SQL과 그 실행계획이 라이브러리캐시(프로시저캐시)에 캐싱되어 있는지 확인 캐싱되어 있다면 소프트파싱, 캐싱되어있지 않다면 하드파싱 파싱종류 소프트파싱 (Soft Parsing) SQL과 실행계획을 캐시에서 찾아 곧.. 2021. 4. 25.
SQLP - 옵티마이저와 실행계획 1. 옵티마이저 옵티마이저는 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 옵티마이저가 선택한 실행 방법의 적절성 여부는 질의 수행 속도에 가장 큰 영향을 미치게된다. 옵티마이저가 최적의 살행 방법을 결정하는 방식에는 규칙기반(RBO, Rule Based Optimizer)와 비용기반(CBO, Cost Based Optimizer)로 구분한다. 현재는 비용기반(CBO) 위주로 신규 기능에 지원되고, 규칙기반(RBO) 에서는 신규 기능에 대해서 지원하지않는다. 가. 규칙기반 옵티마이저 규칙기반 옵티마이저가 실행계획을 생성할 때 참조하는 정보에는 SQL문을 실행하기 위해서 이용 가능한 인덱스 유무와(유일, 비유일, 단일, 복합 인덱스) 종류, SQL문 에서 사용하는 연산자(=.. 2021. 4. 18.