SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Bind Variable과 실행계획: Bind Peeking·Adaptive Cursor Sharing
원래 이론 →판단 기준
V$SQL_CS_STATISTICS는 Oracle이 Bind-Aware 여부를 판단할 때 참고하는 표본 실행의 처리 행 수, Buffer Gets와 CPU 정보 등을 요약합니다.
확인할 수 있는 대표 내용은 다음과 같습니다.
- Bind Set이 Cursor 생성에 사용되었는지
- 처리한 Row 수
- Buffer Gets
- CPU 사용량
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동하기 쉬운 판단 | 정확한 기준 |
|---|---|
| Bind Variable이면 항상 하나의 Child만 사용한다 | ACS와 호환성 차이로 여러 Child가 존재할 수 있다 |
| Bind Peeking은 매 Execute마다 수행된다 | 관련 Hard Parse에서 수행되며 Soft Parse는 기존 Plan을 재사용한다 |
| 첫 번째 Bind 값만 영구히 Plan을 결정한다 | ACS가 실행 결과를 관찰해 선택도 범위별 Plan을 만들 수 있다 |
| Histogram이 있어야만 Bind-Sensitive가 된다 | Histogram은 추정에 도움을 주지만 유일한 필수 조건은 아니다 |
| Bind-Sensitive이면 여러 Plan을 이미 사용한다 | 값별 Plan 필요성을 관찰하는 단계다 |
| Bind-Aware이면 모든 Bind 값마다 Child를 만든다 | 기존 선택도 범위를 재사용하고 같은 Plan은 Cursor Merging할 수 있다 |
| Child가 여러 개면 모두 ACS다 | Bind Metadata와 환경 공유 실패도 확인해야 한다 |
| ACS와 CURSOR_SHARING은 같은 기능이다 | ACS는 Bind별 Plan 선택, CURSOR_SHARING은 SQL Text 공유 정책이다 |
| FORCE는 Parse Call도 제거한다 | Parent 공유와 Hard Parse는 줄일 수 있지만 Parse 요청은 남는다 |
| FORCE를 사용하면 SQL Injection이 해결된다 | 안전한 Application Bind API가 필요하다 |
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.