🗓 22-08-06
SQLP 3과목 이론 복습
SQLP 필기 풀이
[SQLP필기풀이]6장 고급SQL튜닝(1-4) 파티셔닝
- 4번, 5번, 6번, 7번, 8번, 9번, 10번, 11번, 12번, 13번,
14번, 15번, 16번, 17번, 18번, 19번, 20번, 21번, 22번, 23번
NODE 토이 프로젝트
- 한국 => 미국행 가격 비교 모듈 추가에 필요한 파라미터 정리
👀 8/6 복기
[1] 파티셔닝 종류
✅ 정적(Static) 파티션 Pruning
- 파티션 키 컬럼을 상수 조건으로 조회하는 경우에 작동한다.
- 액세스할 파티션이 쿼리 최적화 시점에 미리 결정된다.
- 실행계획의 Pstart(partition start)와 Pstop(partition stop) 컬럼에는 액세스할 파티션 번호가 출력된다.
✅ 동적(Dynamic) 파티션 Pruning
- 파티션 키 컬럼을 바인드 변수로 조회하며 쿼리 최적화 시점에는 액세스할 파티션을 미리 결정할 수 없다.
- 실행 시점이 돼서야 사용자가 입력한 값에 따라 결정되며, 실행계획의 Pstart와 Pstop 컬럼에는 "KEY'라고 표시된다.
- ⭐️NL 조인할 때도 Inner 테이블이 조인 컬럼 기준으로 파티셔닝 돼 있다면 동적 Pruning이 작동한다.⭐️
[2] Local Partition 인덱스
- ⭐️테이블 파티션을 재구성(ADD/DROP/SPLIT/EXCHANGE 등)할 때 비파티션 인덱스와 Global 파티션 인덱스는 Unusable 상태로 변한다.⭐️
- ⭐️반면, Local 파티션 인덱스는 Unusable 상태로 변하지 않으며, 파티션도 자동으로 재구성되므로 관리의 편의성이 좋다.⭐️
✅ Local 파티션 인덱스
- Local 파티션 인덱스는 테이블 파티션 속성을 그대로 상속받는다.
- 따라서 테이블 파티션 키가 주문일시면 인덱스 파티션 키도 주문일시가 된다.
- Local 파티션 인덱스를 'Local 인덱스'라고 줄여서 부르기도 한다.
- ⭐️Local 파티션 인덱스는 테이블과 정확히 1:1 대응 관계를 갖도록 오라클이 파티션을 자동으로 관리해 준다.⭐️
- ⭐️테이블 파티션 구성을 변경(add, drop, exchange 등)하더라도 인덱스를 재생성할 필요가 없다.⭐️
- 변경작업이 순식간에 끝나므로 피크(peak) 시간대만 피하면 서비스를 중단하지 않고도 작업할 수 있다.
- Local 파티션 인덱스의 장점은 이처럼 관리 편의성에 있다.
[3] Global Partition 인덱스
✅ Global 파티션 인덱스
- Global 파티션 인덱스는 파티션을 테이블과 다르게 구성한 인덱스다.
- 구체적으로, 파티션 유형이 다르거나, 파티션 키가 다르거나, 파티션 기준값 정의가 다른 경우다.
- 비파티션 테이블이어도 인덱스는 파티셔닝할 수 있다.
- ⭐️글로벌 파티션 인덱스는 테이블 파티션 구성을 변경(DROP, EXCHANGE, SPLIT 등)하는 순간 Unusable 상태로 바뀌므로 곧바로 인덱스를 재생성해 줘야 한다.⭐️
- 그동안 해당 테이블을 사용하는 서비스를 중단해야 한다.