- HOME
- [종료]주주클럽 스터디
- 2016년 하반기 오라클 성능고도화 원리와 해법 I,II 스터디
- 1. 쿼리 변환이란?
01.쿼리 변환이란?
- 하나의 쿼리는 여러가지 형태로 표현될 수 있다.
- 각각의 쿼리의 결과가 동일하더라도 수행 속도는 다를 수 있다.
- 쿼리 변환이란 쿼리 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는 것을 말한다.
- Query Transformer가 역할 수행, '논리적 최적화'라 부리기도 한다.
- DMBS 버전이 올라갈 수록 쿼리 변환의 종류도 다양해지고 적극적으로 쿼리 변환을 시도하고 있다.
- 오라클 8i - 복합뷰 머징을 사용자 힌트에 의해서 소극적으로 수행하다가 9i에서 결과가 보장된다면 무조건 변환하게 되었다.
- 10g부터는 좀 더 완벽한 CBO 모드로 동작하기 시작하였다.(더 나은 성능을 낼 것으로 판단될 때 복합뷰머징 사용)
- 쿼리 변환의 종류
- 1.서브쿼리 Unnesting
- 2.뷰 Merging
- 3.조건절 Pushing
- 4.조건절 이행
- 5.공통 표현식 제거
- 6.Outer 조인을 Inner 조인으로 변환
- 7.실체화뷰 쿼리로 재작성
- 8.Star 변환
- 9.Outer 조인 뷰에 대한 조인 조건 Pushdown
- 10.OR-expansion
- 작동방식
- 휴리스틱(Heuristic) 쿼리변환 : 결과만 보장된다면 무조건 쿼리 변환 수행, 일종의 규칙기반 최적화 기법(1~6번)
- 비용기반(Cost-based) 쿼리변환 : 변환된 쿼리의 비용이 더 낮을 때만 쿼리변환 시도(7~10번)
- HOME
- [종료]주주클럽 스터디
- 2016년 하반기 오라클 성능고도화 원리와 해법 I,II 스터디
- 1. 쿼리 변환이란?