SQLP

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

Selectivity·Cardinality·Cost: 통계 추정과 Plan 선택 진단

원래 이론 →

판단 기준

혼동하기 쉬운 판단정확한 해석
Selectivity가 높으면 좋은 조건이다수치가 크면 많은 Row를 선택한다. “매우 선택적”이라는 표현과 구분한다
Cardinality는 Table 총 Row 수다실행계획의 각 Row Source가 반환할 예상 Row 수다
등치 조건은 항상 1/NDV다Histogram·NULL·Bind·상관관계·표현식에 따라 달라진다
두 Predicate의 Selectivity는 항상 곱한다독립성 가정일 뿐이며 상관관계가 강하면 큰 오차가 생긴다
Cost가 가장 낮으니 실제로도 반드시 가장 빠르다Cost는 예상 통계 기반 비교값이며 실제 자원 사용을 검증해야 한다
E-Rows와 A-Rows만 바로 비교하면 된다반복 Operation은 Starts를 반영해 단위를 맞춘다
최종 Row 수가 맞으면 중간 추정은 중요하지 않다중간 Cardinality가 Join·Sort·메모리·Access Path 선택을 결정한다
Selectivity는 실행계획에 그대로 표시된다내부 계산이며 Plan에는 예상 Cardinality가 표시된다
Histogram은 모든 Column에 많을수록 좋다편중·사용 Predicate에 필요한 Column에 선택적으로 관리
Dynamic Statistics가 영구 통계를 대체한다Parse 시 Sample로 Persistent Statistics를 보완
Column Group은 각 Column Histogram과 같다Column 조합의 상관관계를 하나의 통계 단위로 표현
Statistics Feedback이 첫 실행을 개선한다실제 오차를 관찰한 후 후속 실행 재최적화에 사용
E-Rows가 낮으면 Index가 반드시 빠르다Clustering Factor·반복 Starts·Table Access 비용을 함께 본다
Join NDV만 알면 Fan-out을 정확히 안다값별 중복 편중과 Constraint·NULL·상관관계도 필요

이 부분의 원문 →

헷갈리는 개념

반복 Operation에서는 비교 단위를 맞춰야 합니다.

예시·텍스트
E-Rows  = 해당 Operation의 예상 Row, 반복 Row Source에서는 보통 Start당 해석
Starts  = 해당 Row Source가 실제 시작된 횟수
A-Rows  = 표시된 실행에서 실제 반환한 누적 Row

개념적으로 다음 두 방법 중 하나를 사용합니다.

예시·텍스트
예상 총 Row ≈ E-Rows × Starts
실제 총 Row = A-Rows

또는

예시·텍스트
예상 1회당 Row = E-Rows
실제 1회당 Row ≈ A-Rows ÷ Starts

예시:

예시·텍스트
| Operation             | Starts | E-Rows | A-Rows |
|-----------------------|--------|--------|--------|
| INDEX RANGE SCAN      |  1,000 |      1 | 50,000 |
예시·텍스트
예상 총 Row = 1 × 1,000 = 1,000
실제 총 Row = 50,000
실제 1회 평균 = 50,000 ÷ 1,000 = 50

Inner Index Probe가 한 번당 1건이라고 예상했지만 실제로는 평균 50건을 반환한 것입니다. 이 오차가 NL Join 반복 비용을 크게 늘릴 수 있습니다.

Starts=0인 비선택 Adaptive Branch나 실행되지 않은 Operation은 E-Rows가 있어도 실제 작업하지 않았을 수 있습니다. 반대로 일부 Row만 Fetch했다면 Starts·A-Rows가 전체 결과 기준이 아닐 수 있습니다.


이 부분의 원문 →

대표 계산·예제

예를 들어 1,000,000행 중 10,000행을 선택할 것으로 예상한다면 다음과 같습니다.

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.