WITH SUBQUERY
EXEM Knowledge Base
목차 |
[편집] 기본 정보
[편집] Parameter 정보
| Syntax | _WITH_SUBQUERY |
| 설정방법 |
|
| 버전 및 기본값 |
| 9iR2 | 10gR1 | 10gR2 | 11gR1 |
|---|---|---|---|
| OPTIMIZER |
[편집] 설명
11g부터 지원되는 파라미터이며, With Subquery를 처리하는 방식을 결정한다. 다음과 같은 세가지 값을 제공한다.
- OPTIMIZER: Optimizer가 알아서 판단한다. 기본 동작 방식이다.
- MATERIALIZE: 항상 Materialize를 수행한다. /*+ materialize */ 힌트를 부여한 것과 동일하게 동작한다.
- INLINE: 항상 Inline 모드로 동작한다. /*+ inline */ 힌트를 부여한 것과 동일하게 동작한다.
사용 예제는 다음과 같다.
explain plan for
with x as (select * from t1), y as (select * from t2) select * from x, y where x.c1 = y.c1 ; -- Inlined! ----------------------------------- | Id | Operation | Name | ----------------------------------- | 0 | SELECT STATEMENT | | |* 1 | HASH JOIN | | | 2 | TABLE ACCESS FULL| T2 | | 3 | TABLE ACCESS FULL| T1 | ----------------------------------- explain plan for with x as (select /*+ materialize */ * from t1), y as (select /*+ materialize */ * from t2) select * from x, y where x.c1 = y.c1 ; -- materialize hint will materialize the subquery ------------------------------------------------------------------ | Id | Operation | Name | ------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | 1 | TEMP TABLE TRANSFORMATION | | | 2 | LOAD AS SELECT | | | 3 | TABLE ACCESS FULL | T1 | | 4 | LOAD AS SELECT | | | 5 | TABLE ACCESS FULL | T2 | |* 6 | HASH JOIN | | | 7 | VIEW | | | 8 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6623_22D161E4 | | 9 | VIEW | | | 10 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6624_22D161E4 | ------------------------------------------------------------------ -- Let's materialze all with-subqueries in my session! alter session set "_with_subquery" = materialize; explain plan for with x as (select * from t1), y as (select * from t2) select * from x, y where x.c1 = y.c1 ; ------------------------------------------------------------------ | Id | Operation | Name | ------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | 1 | TEMP TABLE TRANSFORMATION | | | 2 | LOAD AS SELECT | | | 3 | TABLE ACCESS FULL | T1 | | 4 | LOAD AS SELECT | | | 5 | TABLE ACCESS FULL | T2 | |* 6 | HASH JOIN | | | 7 | VIEW | | | 8 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6625_22D161E4 | | 9 | VIEW | | | 10 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6626_22D161E4 | ------------------------------------------------------------------