🗓 22-08-13
SQLP 3과목 이론 복습
SQLP 실기 풀이
[SQLP필실기풀이]6장 고급SQL튜닝(2)
- 55 (https://velog.io/@yooha9621/SQLP실기문제-고급SQL활용55번-ix52lb8s)
- 56 (https://velog.io/@yooha9621/SQLP실기풀이-고급SQL활용56번)
- 57 (https://velog.io/@yooha9621/SQLP실기풀이-고급SQL활용57번)
- 59 (https://velog.io/@yooha9621/SQLP실기풀이-고급SQL활용59번)
- 60 (https://velog.io/@yooha9621/SQLP실기풀이-고급SQL활용60번)
- 61 (https://velog.io/@yooha9621/SQLP실기문제-고급SQL활용61번)
- 62 (https://velog.io/@yooha9621/SQLP실기문제-고급SQL활용62번)
SQLP 필기 풀이
[SQLP필실기풀이]6장 고급SQL튜닝(2)
- 63 , 64 ,65
👀 8/13 복기
[1] Decode 사용법
- A = B 이면 X를 출력, A ≠ B 이면 Y를 출력
DECODE(A, B, X, Y)
- A = B이면 X 출력,
A = C이면 Y 출력,
A ≠ B 이고 A ≠ C이면 Z 출력
DECODE(A, B, X, C, Y, Z)
[2] 오라클 누적 합계 구하기
- 필터 조건일 경우 필터링 횟수만큼 실행되고 수직 액세스 조건인 경우 단 1회 수행된다.
SUM(매출금액) OVER ( PARTITION BY 지점코드 ORDER BY 판매월 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS 누적매출
[3] with 구문
✅ with 절을 처리하는 DBMS 내부 실행방식 2가지
- Materialize 방식
- 내부적으로 임시 테이블을 만든다.
- 만들어진 임시 테이블은 반복 재사용이 가능하다.
- 실행계획에 'TEMP TABLE TRANSFORMATION' 라고 뜬다.
- 'materialize' 힌트를 사용한다.
- Inline 방식
- 참조된 횟수만큼 런타임시 반복 수행된다.
- 임시테이블이 생성되지 않는다.
- 실행계획에 'TEMP TABLE TRANSFORMATION' 라고 뜨지 않는다.
[4] merge/no_merge 실행계획
[5] Materialize 방식
✅ Materialize 방식
- 중간 집합을 만드는 과정에 원본 집합을 읽어 Temp 공간에 기록하는 과정을 수반하면서 DISK I/O가 발생한다.
- 따라서 원본집학이 작고 동시 수행 빈도가 높을 때에 사용하면 오히려 성능이 저하된다.
- 매우 많은 데이터를 읽어 group by , 조인 등을 통해 집합 크기를 많이 줄일 수 있을 때 수행하면 성능 개선에 도움이 된다.
- 해당 뷰를 읽을 때에도 버퍼 캐시를 경유하여 읽는다.