22-08-13

Yu River·2022년 8월 13일
0

공부 일지

목록 보기
8/28

🗓 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 , 조인 등을 통해 집합 크기를 많이 줄일 수 있을 때 수행하면 성능 개선에 도움이 된다.
  • 해당 뷰를 읽을 때에도 버퍼 캐시를 경유하여 읽는다.
profile
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’

0개의 댓글