p.2권 121 ~ 123
✅ with 절을 처리하는 DBMS 내부 실행방식 2가지
- Materialize 방식
- 내부적으로 임시 테이블을 만든다.
- 만들어진 임시 테이블은 반복 재사용이 가능하다.
- 실행계획에 'TEMP TABLE TRANSFORMATION' 라고 뜬다.
- 'materialize' 힌트를 사용한다.
- Inline 방식
- 참조된 횟수만큼 런타임시 반복 수행된다.
- 임시테이블이 생성되지 않는다.
- 실행계획에 'TEMP TABLE TRANSFORMATION' 라고 뜨지 않는다.
- 'Inline' 힌트를 사용한다.
✅ Materialize 방식
- 중간 집합을 만드는 과정에 원본 집합을 읽어 Temp 공간에 기록하는 과정을 수반하면서 DISK I/O가 발생한다.
- 따라서 원본집합이 작고 동시 수행 빈도가 높을 때에 사용하면 오히려 성능이 저하된다.
- 매우 많은 데이터를 읽어 group by , 조인 등을 통해 집합 크기를 많이 줄일 수 있을 때 수행하면 성능 개선에 도움이 된다.
- 해당 뷰를 읽을 때에도 버퍼 캐시를 경유하여 읽는다.