NO_MERGE     vs     NO_UNNEST

NO_MERGE: 뷰나 인라인 뷰에 사용 (인라인 뷰 = FROM절의 서브쿼리)

NO_UNNEST: 인라인 뷰 외의 WHERE절 등의 서브쿼리에 사용

 

 NO_MERGE와 NO_UNNEST의 공통점은

서브쿼리 또는 뷰나 인라인 뷰 )해체하지 말아라.  라는 의미를 갖고 있습니다.

 

그럼 그 반대도 있겠죠?

MERGE: 뷰나 인라인 뷰를 해체해라

UNNEST: 서브쿼리를 해체해라

(해쉬 테이블로 올릴 테이블을 직접 정하고자 할 때 사용)

 

먼저 서브쿼리 UNNESTING 문부터 알아보죠!

[짝꿍처럼 써줘야하는 힌트]

 NO_UNNEST: 서브쿼리를 해체하지 마라

1. PUSH_SUBQ: 서브쿼리부터 수행해라

2. NO_PUSH_SUBQ: 메인쿼리부터 수행해라

 

UNNEST: 서브쿼리를 해체해라

1. SWAP_JOIN_INPUT: 해쉬테이블로 올릴 테이블 지정

2. NO_SWAP_JOIN_INPUT: 해쉬테이블로 올리지 않을 테이블 지정

 

다음으로 서브쿼리 MERGING 문을 알아보죠!

 MERGE: 뷰나 인라인 뷰를 해체해라

NO_MERGE: 뷰나 인라인 뷰를 해체하지 마라

 




+ Recent posts