← 질문 목록
#44깊이 0

서브쿼리 언네스팅과 뷰 병합의 차이는?

데이터베이스깊이인덱스·질의

서브쿼리 언네스팅은 WHERE절 등의 서브쿼리를 메인 쿼리와의 조인 형태로 변환하는 기법이고, 뷰 병합(View Merging)은 FROM절의 뷰 블록을 메인 쿼리와 하나로 병합하는 기법이라는 차이가 있다.

기준서브쿼리 언네스팅뷰 병합 (View Merging)
변환 대상WHERE/HAVING절 서브쿼리FROM절 인라인 뷰 및 뷰
변환 방식서브쿼리를 메인 조인문으로 변환뷰의 쿼리 블록을 메인 쿼리에 병합
주요 목적서브쿼리의 반복 수행 방지불필요한 중간 집합 생성 방지

언네스팅은 WHERE·HAVING절을, 뷰 병합은 FROM절을 다룬다. 언네스팅은 서브쿼리를 조인 구조로 흡수해 해시 조인 등을 사용할 수 있게 돕는다.

반면 뷰 병합은 FROM절 인라인 뷰의 쿼리 블록을 메인 쿼리로 흡수한다. 뷰 블록이 합쳐지면 불필요한 임시 테이블과 중복 검색이 줄어든다.

두 기법 모두 옵티마이저가 쿼리 블록을 단순화하여 최적화 공간을 넓히는 기법이다. 하지만 작동하는 대상절과 조인 구조 생성 방식에서 명확히 구분된다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

서브쿼리 언네스팅과 뷰 병합의 차이는?