SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
View Merging·Predicate Pushdown: Query Block 통합과 조건 조기 적용
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동하기 쉬운 판단 | 정확한 기준 |
|---|---|
| View Merging과 Predicate Pushdown은 같은 변환이다 | Merging은 Query Block 통합, Pushdown은 경계를 유지한 조건 내부 적용이다 |
실행계획에 VIEW가 있으면 Merging되지 않았다 | 복합 Merging 후 Projection View가 남을 수 있으므로 Alias·Outline·하위 구조를 확인한다 |
VIEW가 있으면 TEMP에 저장한다 | TEMP TABLE TRANSFORMATION, LOAD AS SELECT, SYS_TEMP_...를 확인한다 |
NO_MERGE는 Materialization Hint다 | Query Block 통합을 제한할 뿐 저장 방식을 항상 강제하지 않는다 |
PUSH_PRED는 모든 Filter Pushdown을 강제한다 | 공식적으로 Join Predicate Pushdown을 지시하는 Hint다 |
| Grouping Key와 Aggregate 결과 조건은 같은 시점에 Push할 수 있다 | Grouping Key는 집계 전 가능성이 있지만 Aggregate 결과는 Grouping 후 평가해야 한다 |
VIEW PUSHED PREDICATE는 항상 빠르다 | Outer Row 수와 View의 Starts, 총 Buffers를 함께 봐야 한다 |
| Predicate는 안쪽으로 갈수록 항상 안전하다 | Outer Join·Aggregate·Analytic·Top-N은 평가 시점이 결과를 바꿀 수 있다 |
헷갈리는 개념
다음 Plan은 View Row Source가 남아 있음을 보여 줍니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
VIEW
HASH GROUP BY
TABLE ACCESS FULL ORDERS
이 VIEW는 부모 Operation에 행을 전달하는 논리적 경계일 수 있습니다. 행을 Memory나 Temporary Tablespace에 저장했다가 다시 읽었다는 증거는 아닙니다.
Materialization은 다음과 같은 Operation에서 더 직접적으로 확인합니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
TEMP TABLE TRANSFORMATION
LOAD AS SELECT
TABLE ACCESS FULL SYS_TEMP_...
분석할 때 다음 질문을 분리합니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
1. 원래 View Query Block이 Merging됐는가?
2. VIEW Row Source가 남아 Streaming되는가?
3. Projection View가 의미 보존용으로 생성됐는가?
4. 결과가 Temporary Object로 Materialize됐는가?
NO_MERGE Hint는 바깥 Query와 Inline View를 하나의 Query Block으로 합치지 않도록 지시합니다. 그러나 View 결과를 반드시 TEMP에 저장하라고 지시하는 Hint는 아닙니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.