티스토리 뷰

데이터베이스/SQL 튜닝

Query Transformation Hints

나는연어다 2018. 6. 29. 13:33

Query Transformation Hints

 

-       EXPAND_GSET_TO_UNION

/*+ EXPAND_GSET_TO_UNION */

- GROUP BY GROUPING SET 혹은 GROUP BY ROLLUP 등과 같은 구문을

포함하는 쿼리에 사용할 수 있다.

                     - 이 힌트는 기존의 쿼리를 개별적인 그룹 생성 후, UNION ALL 방식으로

                       실행되게 유도한다.

 

-       FACT_HINT

/*+ FACT (tabl) */

- Star 변형 구문에서 사용되며 해당 테이블이 FACT 테이블로

사용되게 유도한다.

 

-       NO_FACT

/*+ NO_FACT (table) */

- Star 변형 시, 해당 테이블의 FACT 테이블로서의 사용을 방지한다.

 

-       MERGE

/*+ MERGE (table) */

- 각 쿼리의 결과값을 머지 한다.

- 해당 쿼리 내에 GROUP BY 절의 사용이나 SELECT 구문에 DISTINCT

사용되었을 시, 머지의 실행이 가능할 경우에만 힌트가 실행된다.

- IN과 서브 쿼리의 사용 시, 서브 쿼리의 상위 쿼리 간의

상호 관계가 없을 때에만 머지의 실행이 가능하다.

- 이 힌트는 Cost-Based가 아니다. 따라서 액세스하는 실행 쿼리 블록에

MERGE 힌트가 반드시 명시되어야만 한다. 그렇지 않을 경우

옵티마이저는 다른 실행계획을 수립한다.

 

-       NO_EXPAND

/*+ NO_EXPAND */

- 실행 쿼리 내에 OR WHERE 절의 IN 이 사용되었을 시, Cost-Based

옵티마이저가 쿼리 처리를 위해 OR를 사용한 확장을 사용하는 것을 방지한다.

- 일반적으로 옵티마이저는 위와 같은 경우 OR-확장의 가격이 확장을

사용하지 않는 것보다 적을 시, 확장 방식으로 수행한다.

 

-       NO_MERGE

/*+ NO_MERGE (table) */

- 머지 처리 방식의 사용을 방지한다.

 

-       REWRITE

/*+ REWRITE [ ( [materialized_view] [materialized_view] … ) ] */

- 실행 계획의 가격에 상관없이 Materialized View를 사용하여 쿼리 재생성을 하도록 한다.

- Materialized View를 지정할 시, 지정한 Materialized View의 가격에

상관없이 무조건 쿼리를 재생성을 실행한다.

- Materialized View를 지정하지 않을 시, 오라클은 사용 가능한

모든 Materialized View를 참조하여 그 중 가장 가격이 낮은 Materialized View를 사용하여 쿼리 재생성을 한다.

- Materialized View를 지정하지 않는 힌트의 사용이 권장된다.

 

-       NOREWRITE

/*+ NOREWRITE */

- 해당 쿼리 블록의 쿼리 재생성의 실행을 방지한다.

- QUERY_REWRITE_ENALBE 파라미터에 대해 우선권을 가진다.

- NOREWRITE 힌트의 사용 시, Function-Based 인덱스의 사용이 금지된다.

 

-       STAR_TRANSFORMATION

/*+ STAR_TRANSFORMATION */

- 옵티마이저가 Star 변형 작업에 최적화된 실행 계획을 수립, 실행하도록 한다.

- 힌트를 사용하지 않을 시, 옵티마이저는 일반적인 작업에 최적화된

 실행 계획을 수행한다.

- 힌트를 사용하였어도 변형 작업에 맞추어진 실행 계획을 실행한다는

보장은 없다. 다른 일반적인 힌트의 사용과 마찬가지로 비교 분석 후,

오라클의 판단에 따라 다른 실행 계획이 실행될 수 있다.

 

-       USE_CONCAT

/*+ USE_CONCAT */

- WHERE절의 OR 조인을 UNION ALL로 변경하여 수행하게 한다.

- 일반적으로 이러한 변경은 결과값의 병합 수행의 가격이 수행하지 않을 시의 가격보다 낮을 때에만 실행된다.


반응형
LIST

'데이터베이스 > SQL 튜닝' 카테고리의 다른 글

Other Hints  (0) 2018.07.02
Parallel Execution Hints  (0) 2018.06.28
Join Operation Hints  (0) 2018.06.27
Joint Order Hints  (0) 2018.06.26
Access Method Hints  (0) 2018.06.25
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함