메뉴 건너뛰기

bysql.net

1. 쿼리 변환이란?

2011.05.16 09:06

운영자 조회 수:6258


  • 결과가 동일하더라도 SQL문을 어떻게 작성하느냐에 따라 성능의 차이가 생길수 있음
  • 최근의 비용기반 옵티마이저는 사용자 SQL을 최적화에 유리한 형태로 재작성하는 작업을 먼저 진행
  • 비용기반 옵티마이저의 서브엔진중 Query Transformer 가 담당


쿼리변환 (Query Transformation)

  • 쿼리 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는것을 말함
  • 최적화전 사전 정지 작업
  • 쿼리변환
    • 논리적 최적화
  • 후단계
    • 물리적 최적화 라고 하기도 함


쿼리변환의 종류

( Query Optimization in Oracle 9i, Query Optimization in Oracle Databse10g Release 2 참고)


1. 서브쿼리 Unnesting

2. 뷰 Merging

3. 조건절 Pushing

4. 조건절 이행

5. 공통 표현식 제거

6. Outer 조인을 Inner 조인으로 변환

7. 실체화 뷰 쿼리로 재작성

8. Star 변환

9. Outer 조인 뷰에 대한 조인 조건 Pushdown

10. OR-expansion


쿼리변환의 작동방식

  • 휴리스틱 (Heuristic) 쿼리 변환:
    • 결과가 보장되면 무조건 쿼리 변환 수행
    • 규칙기반 최적화 기법
    • 경험적으로 항상 더 나은 성능을 보일것이라는 개발팀의 판단 반영
  • 비용기반 쿼리변환
    • 변환된 쿼리 비용이 더 낮을 때만 사용, 그렇지 않으면 원 쿼리를 대상으로 최적화 수행


  • 9i 기준(변환 종류중)
    • 1~6: 휴리스틱 쿼리 변환
    • 7~10: 비용기반 쿼리 변환
  • 10g
    • 서브쿼리 Unnesting과 뷰 Merging이 비용기반 쿼리 변환으로 전환
    • Predicate Pushing중 Join Predicate Pushdown도 비용기반 쿼리 변환으로 전환
  • 이후
    • Join Elimination (조인제거)
    • Aggregate Subquery Elimination (집계서브쿼리를 분석함수로 변환)
    • Set Join Conversion (집합연산을 조인으로 변환)
    • 등 추가



  • 오라클 고도화 원리와 해법 2 (bysql.net 2011년 1차 스터디)
  • 작성자: 남송휘(tofriend)
  • 최초작성일: 2011년 5월 15일
  • 본문서는 bysql.net 스터디 결과입니다 .본 문서를 인용하실때는 출처를 밝혀주세요. http://www.bysql.net
  • 문서의 잘못된 점이나 질문사항은 본문서에 댓글로 남겨주세요. ^^






번호 제목 글쓴이 날짜 조회 수
35 6. 조인 제거 AskZZang 2011.06.01 5440
34 4. 조건절 Pushing 오예스 2011.05.31 17473
33 5. 조건절 이행 file balto 2011.05.30 5464
32 2. 서브쿼리 Unnesting 토시리 2011.05.18 2077
31 3. 뷰 Merging 오라클잭 2011.05.17 6081
» 1. 쿼리 변환이란? 운영자 2011.05.16 6258
29 8. 통계정보 Ⅱ AskZZang 2011.05.04 5913
28 7. 비용 file balto 2011.05.02 4995
27 5. 카디널리티 오라클잭 2011.04.27 12917
26 6. 히스토그램 오예스 2011.04.25 17372
25 4. 통계정보 Ⅰ file 토시리 2011.04.25 16009
24 3. 옵티마이저의 한계 휘휘 2011.04.19 6698
23 2. 옵티마이저 행동에 영향을 미치는 요소 balto 2011.04.18 6159
22 3. 옵티마이저의 한계 - P 휘휘 2011.04.18 3698
21 1. 옵티마이저 file 휘휘 2011.04.18 6062
20 8. 고급 조인 테크닉-1 file 휘휘 2011.04.05 6459
19 8. 고급 조인 테크닉-2 오라클잭 2011.04.05 12560
18 7. 조인을 내포한 DML 튜닝 오예스 2011.04.04 9945
17 4. 조인 순서의 중요성 AskZZang 2011.03.30 5328
16 1. 인덱스 구조 file 운영자 2011.03.30 15951