SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Scalar Subquery Cache·Result Cache·DETERMINISTIC: 재사용과 정확성
원래 이론 →판단 기준
정확한 비용은 환경마다 다르지만 다음 구조로 생각할 수 있습니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Cache 이득
≈ 반복 실행 횟수 × 원래 계산 비용
- Cache Lookup 비용
- Cache 생성 비용
- Invalidation·재생성 비용
- Result Cache Memory·TEMP 비용
- Threshold 도달 전 실행 비용
헷갈리는 개념
Function Result Cache의 인수 비교는 PL/SQL의 일반 = 비교와 완전히 같지 않습니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
NULL 인수
→ Cache Hit 비교에서는 NULL과 NULL이 같은 Key로 취급
Non-NULL Scalar
→ 값의 표현이 동일한지 엄격하게 비교
→ CHAR 'AA'와 'AA '가 별도 Entry가 될 수 있음
인수 정규화 방식과 데이터 타입이 Cache Entry 수에 영향을 줄 수 있습니다.
대표 계산·예제
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Outer A-Rows = 100,000
상관 Key NDV = 500
Subquery Starts = 650
실제 Starts가 Outer 행 수보다 크게 작다면 실행 중 재사용이나 다른 최적화가 영향을 주었을 가능성을 검토할 수 있습니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Outer A-Rows = 100,000
Subquery Starts = 100,000
반복 실행이 거의 그대로 발생했다면 Join·사전 집계·LATERAL 대안과 비교합니다.
실행계획의 Starts는 Row Source 시작 횟수이므로 내부 Cache Hit 전체를 단독으로 설명하지는 못합니다. 다음을 함께 사용합니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Outer A-Rows
상관 Key NDV
Subquery Starts
Inner Buffers·A-Time
SQL Trace
함수 호출 Counter
전체 Fetch 범위
또한 Scalar Subquery 실행 중 재사용은 Server Result Cache의 V$RESULT_CACHE_OBJECTS에 사용자가 관리하는 Entry로 나타나는 기능과 구분합니다. Statement 종료 후 여러 Session이 공유하는 Cache라고 가정하지 않습니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.