쿼리 변환의 종류
● 서브쿼리 Unnesting
● 뷰 Merging
● 조건절 Pushing
● 조건절 이행
● 공통 표현식 제거
● outer 조인을 Inner 조인으로 변환
● 실체화 뷰 쿼리로 재작성
● star 변환
● outer 조인 뷰에 대한 조인 조건 Pushdown
● or-expansion
- 오라클 9i 기준 10가지 중 1~6까지는 휴리스틱 쿼리 변환에 해당, 7~10은 비용기반 쿼리 변환
- 10g부터는 서브쿼리 Unnesting과 뷰 Merging이 비용기반 쿼리 변환으로 전환됨
조건절 Pushing 중 조인 조건 pushdown도 비용기반 쿼리 변화으로 전화
나머지는 변환된 쿼리가 하상 더 나은 성능을 제공하므로 비용기반으로 전환이 불필요,
결론적으로 말해, 필요한 부분에 대해선 이미 비용기반으로 모두 개선이 이루어진 셈이다.
쿼리 변환 두 가지 방식
● 휴리스틱 쿼리 변환 : 결과만 보장된다면 무조건 쿼리 변환을 수행
● 비용기반 쿼리 변환 : 변환된 쿼리의 비용이 더 낮을 때만 그것을 사요하고,
그렇지 않을 때는 원본 쿼리 그대로 두고 최적화를 수행한다.
'ORACLE > SQLP' 카테고리의 다른 글
성능고도화 4-3. 뷰 Merging (0) | 2016.12.26 |
---|---|
성능고도화 4-2 서브쿼리 Unnesting (1) | 2016.12.26 |
성능고도화 3-8. 통계정보2 (0) | 2016.12.26 |
성능고도화 3-7. 비용 (0) | 2016.12.26 |
성능고도화 3-6 히스토그램 (0) | 2016.12.26 |