SQLP

시험 직전 요약장

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

이론 목록

복합 인덱스의 조건 처리: Access Predicate·Index Filter·Table Filter

원래 이론 →

판단 기준

혼동정확한 기준
Oracle에는 Index Filter라는 별도 공식 Predicate Column이 있다공식 Column은 ACCESS_PREDICATES·FILTER_PREDICATES이며 Index Operation Filter를 교육상 Index Filter라고 부른다
Index에 있는 조건은 모두 Leaf Scan 범위를 줄인다첫 범위 뒤 조건은 Table 후보만 줄이고 넓은 Leaf Scan은 남을 수 있다
access에 표시된 조건은 모든 중간 Prefix를 제거한다사전식 전체 범위 안의 중간 Prefix Entry를 읽을 수 있다
A-Rows는 Index가 검사한 Entry 전체다상위로 반환한 Row 수이며 내부 탈락 Entry는 Buffers와 함께 본다
Index Filter와 Table Filter 비용은 같다Index Filter는 불필요한 Table ROWID Access를 줄일 수 있다
BATCHED이면 후보 ROWID 문제는 해결됐다접근 순서를 개선할 뿐 후보 수 자체를 줄이지 않는다
1회당 Buffer가 작으면 문제없다Starts가 크면 총비용이 커진다
Filter Column을 모두 Index에 넣으면 최적이다폭·DML·공간·다른 SQL Regression을 함께 본다
선두 Column이 없으면 Index 사용은 절대 불가능하다낮은 NDV 선두 Column에서는 Skip Scan을 고려할 수 있다
Index가 있으면 Full Scan 대안은 볼 필요가 없다결과 비율과 Table I/O가 크면 Full·Partition Scan이 유리할 수 있다

이 부분의 원문 →

헷갈리는 개념

처리 위치줄일 수 있는 비용이미 발생하거나 남는 비용
Index AccessLeaf Scan 범위·ROWID 후보·Table Access 감소 가능필요한 Tree 탐색과 좁은 Leaf Scan
Index FilterTable로 전달할 ROWID 감소Filter 전까지 읽는 Leaf Block·Entry
Table Filter최종 결과 감소Leaf Scan·ROWID 생성·Table Access

예를 들어 날짜 범위에서 100,000개의 Entry를 읽고 상태 조건에 맞는 Row가 1,000개라고 가정합니다.

이 부분의 원문 →

대표 계산·예제

Oracle의 V$SQL_PLAN, PLAN_TABLE, 관련 Plan View는 다음 정보를 제공합니다.

공식 Column의미
ACCESS_PREDICATESAccess Structure에서 Row를 찾는 데 사용한 Predicate
FILTER_PREDICATESOperation이 Row를 상위로 반환하기 전에 평가한 Predicate

예를 들어 다음 Plan을 봅니다.

예시·텍스트
TABLE ACCESS BY INDEX ROWID BATCHED ORDERS
  filter("STATUS"='PAID')
  INDEX RANGE SCAN ORDERS_X2
    access("CUSTOMER_ID"=:B1
       AND "ORDER_DATE">=:B2
       AND "ORDER_DATE"<:B3)
도식
Index Access Predicate
  → CUSTOMER_ID·ORDER_DATE로 Index 탐색 범위 설정

Table Filter Predicate
  → Table Row를 읽은 뒤 STATUS 검사

Index Operation에 Filter가 표시되면 이를 Index Filter라고 설명할 수 있습니다.

예시·텍스트
INDEX RANGE SCAN ORDERS_X1
  access("CUSTOMER_ID"=:B1
     AND "ORDER_DATE">=:B2)
  filter("STATUS"='PAID')

이 경우 status는 Leaf Entry에서 평가되므로 조건에 맞지 않는 ROWID가 Table Operation으로 전달되는 것을 줄일 수 있습니다.


이 부분의 원문 →

내 최근 연습 오답

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

학습 기록 →

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