SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
적응형 최적화: Adaptive Plan·Statistics Feedback·Adaptive Cursor Sharing
원래 이론 →판단 기준
Adaptive Query Plan은 최초 최적화 시점에 일부 지점에 대안 Subplan과 Optimizer Statistics Collector를 포함합니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Adaptive Plan 후보
├─ Subplan A: Nested Loops Join
└─ Subplan B: Hash Join
↑
Statistics Collector가 실제 Row 수 관찰
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 구분 | Adaptive Query Plan | Statistics Feedback | Adaptive Cursor Sharing |
|---|---|---|---|
| 관찰 대상 | 현재 실행의 중간 Row 수와 실행 통계 | E-Rows와 A-Rows의 차이 | Bind 값별 선택도와 실행 특성 |
| 적용 시점 | 현재 Statement 실행 중 | 실행 완료 후 재최적화 | 여러 Bind 실행을 관찰한 이후 |
| Plan 형태 | 미리 포함된 대안 Subplan 중 하나를 활성화 | 보정 Cardinality로 새 Plan 생성 가능 | 같은 SQL에 여러 Child Cursor·Plan 가능 |
| 첫 실행 효과 | 첫 실행 중 대안 선택 가능 | 첫 실행 완료 후 정보가 생성되므로 소급 적용 불가 | 처음부터 모든 값의 최적 Plan이 준비되는 것은 아님 |
| 대표 목적 | Join Method·병렬 분배·Bitmap Pruning 등의 실행 중 결정 | Cardinality 추정 오류 보정 | 데이터 편중이 큰 Bind SQL의 Plan 선택 |
| Object Statistics 변경 | 변경하지 않음 | 직접 변경하지 않음 | 변경하지 않음 |
| 주요 확인 | DBMS_XPLAN의 ADAPTIVE 형식과 inactive Row Source | Plan Note의 Statistics Feedback 사용 여부 | V$SQL과 V$SQL_CS_* View |
대표 계산·예제
옵티마이저가 선행 Row Source를 100행으로 예상했다고 가정합니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
예상 100행
→ Nested Loops Join 후보가 유리
실행 중 실제 Row 수가 내부 Threshold를 크게 초과하면 준비된 Hash Join Subplan을 선택할 수 있습니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
실제 500,000행
→ 준비된 Hash Join Subplan 선택
→ Nested Loops 관련 Row Source 비활성화
Adaptive Query Plan은 Join Method뿐 아니라 버전과 설정에 따라 병렬 분배 방식이나 Star Transformation의 Bitmap Index Pruning 같은 결정에도 사용될 수 있습니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.