메뉴 건너뛰기

bysql.net

1. 쿼리 변환이란?

2011.05.02 08:06

실천하자 조회 수:4927

1. 쿼리변환


- C.J. Data 박사의 'An Introduction to Database System' 저서에서 

   간단한 SQL 하나를 52개의 다른 SQL문으로 표현이 가능한 것을 보여줌


- 결과는 동일하여도 SQL을 어떻게 작성하느냐에따라 성능에 차이 발생

   → 결과는 같지만 수행 속도의 차이 발생 (전제조건 : 쿼리 변환 작동 X)


- 애초 가장 좋은 성능 형태의 쿼리를 작성하면 좋지만 현실적으로 많지 않음

   → (쿼리 최적화 원리를 잘 아는 개발자가 흔치 않음)


- 최근 비용기반 옵티마이저는 사용자 SQL을 최적화에 유리한 형태로 재작성 작업을 우선 처리함


- Query Transformer 담당



  • 쿼리변환(Query Transformer)이란?
    • 쿼리 옵티마이저가 SQL을 분석하여 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는 것
    • 쿼리변환 종류

    1. 서브쿼리 Unnesting
    2. 뷰 Merging
    3. 조건절 Pushing
    4. 조건절 이행
    5. 공통 표현식 제거
    6. Outer 조인을 Inner 조인으로 변환
    7. 실체화 뷰 쿼리로 재작성
    8. Start 변환
    9. Outer 조인 뷰에 대한 조인 조건 Pushdown
    10. OR-expansion
    • 쿼리변환 방식
      • 휴리스틱(Heuristic) 쿼리 변환
        • 항상 더 나은 성능을 보일 것이라는 쿼리변환으로 일종의 규칙 기반 최적화 기법으로 볼 수 있음
        • 9i 기준 (1 ~ 6번 해당)
        • 10g 기준 (3번의 부분과, 4~6번 해당) : 변환 쿼리가 항상 더 나은 성능 제공으로 비용기반 전환 필요 X
      • 비용기반(Cost-Based) 쿼리 변환
        • 변화된 쿼리의 비용이 더 낮을 때만 사용하고 그렇지 않을 경우 원본 쿼리 그대로 최적화 수행
        • 10g 부터 필요한 부분에 대해선 비용기반으로 개선 됨



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


번호 제목 글쓴이 날짜 조회 수
60 Front Page file 운영자 2011.02.16 149419
59 3. 인덱스 파티셔닝 darkbeom 2011.06.20 53817
58 3. 다양한 인덱스 스캔 방식 file 멋진넘 2011.02.19 33807
57 8. 통계정보 Ⅱ [1] 멋진넘 2011.04.30 31071
56 2. 파티션 Pruning 실천하자 2011.06.22 26018
55 3. 뷰 Merging 실천하자 2011.05.15 23378
54 3. 해시 조인 file darkbeom 2011.03.21 21530
53 2. 서브쿼리 Unnesting darkbeom 2011.05.16 19700
52 4. 통계정보 Ⅰ darkbeom 2011.04.26 18090
51 7. 인덱스 스캔 효율 [1] 휘휘 2011.03.09 16887
50 7. Sort Area 크기 조정 실천하자 2011.06.14 15066
49 4. 테이블 Random 액세스 부하 [1] file darkbeom 2011.02.24 14677
48 4. 조인 순서의 중요성 운영자 2011.03.28 14238
47 1. 인덱스 구조 [1] file 실천하자 2011.02.16 14190
46 1. 기본 개념 멋진넘 2011.06.28 13393
45 8. 고급 조인 테크닉-1 [1] file darkbeom 2011.04.04 13265
44 9. 비트맵 인덱스 file 실천하자 2011.03.06 12342
43 1. 옵티마이저 file 실천하자 2011.04.18 11211
42 6. 히스토그램 실천하자 2011.04.25 10917
41 6. Sort Area를 적게 사용하도록 SQL 작성 file 실천하자 2011.06.14 8857