문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
study:oracle:datadb:4week_2:chap7 [2010/05/27 13:55] zummaz |
study:oracle:datadb:4week_2:chap7 [2010/05/27 14:38] (현재) zummaz |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====3.3.7. 퀴리형태 변형(Query Transformation)을 위한 힌트==== | ====3.3.7. 퀴리형태 변형(Query Transformation)을 위한 힌트==== | ||
+ | *앞서서 옵티마이져의 최적화 단계에서 살펴본 " | ||
===USE_CONCAT=== | ===USE_CONCAT=== | ||
줄 10: | 줄 11: | ||
===NO_EXPAND=== | ===NO_EXPAND=== | ||
- | *조건절에 있는 OR연산자 조건(또는 IN 연산자 조건)을 | + | *조건절에 있는 OR연산자 조건(또는 IN 연산자 조건)을 |
*USE_CONCAT의 반대 개념이다. | *USE_CONCAT의 반대 개념이다. | ||
줄 33: | 줄 34: | ||
*QUERY_REWRITE_ENABLED 파라메터가 TRUE로 정의되어 있더라도 이를 무시하고 쿼리 블록에 대한 쿼리 재생성를 하지 않도록 유도한다. | *QUERY_REWRITE_ENABLED 파라메터가 TRUE로 정의되어 있더라도 이를 무시하고 쿼리 블록에 대한 쿼리 재생성를 하지 않도록 유도한다. | ||
- | 예) SELECT /*+ NOREWRITE */ sum(s.amount_sold) AS dollars | + | |
FROM sales s, times t | FROM sales s, times t | ||
WHERE s.time_id = t.time_id | WHERE s.time_id = t.time_id | ||
줄 50: | 줄 51: | ||
===NO_MERGE=== | ===NO_MERGE=== | ||
*뷰쿼리 병합이 일어나지 않도록 요구하는 힌트이다. | *뷰쿼리 병합이 일어나지 않도록 요구하는 힌트이다. | ||
- | *주어진 조건이나 처리형태에 따라 뷰 병합을 하지 않고 먼저 뷰를 수행한 결과를 이용해 다음 처리를 하는 것이 유리한 경우도 많이 있다. 이러한 경우에 뷰 병합을 방지하기위해 사용하는 힌트 이다. | + | *주어진 조건이나 처리형태에 따라 |
예) SELECT /*+ NO_MERGE(table_name) */ | 예) SELECT /*+ NO_MERGE(table_name) */ | ||
===STAR_TRANSFORMATION=== | ===STAR_TRANSFORMATION=== | ||
- | *스카 변형 조인(Star transformation join)을 수행하도록 요구하는 힌트이다. 이조인은 소량의 데이터를 가진여러 개의 디멘전 테이블과 팩트 테이블의 개별 비트맵 인덱스를 이용하여 처리범위를 줄이는 조인방식이다. 이 조인은 내부적으로 옵티마이져가 질의를 변형하여 실행계획을 생성하게 한다. | + | *스카 변형 조인(Star transformation join)을 수행하도록 요구하는 힌트이다. 이조인은 |
*참고: 이 조인에 대한 상세내용은 [ 제2부 조인의 최적화' | *참고: 이 조인에 대한 상세내용은 [ 제2부 조인의 최적화' | ||