INDEX SKIP SCAN
MIN/MAX 실행계획
최소값 최대값을 추출하기 위한 SQL
보통 조건을 만족하는 모든 집한에 엑세스하여 정렬을 수행한 후에 최대 값이나 최소 값을 추출
아니면 INDEX RANGE SCAN DESCENDING 실행 계획을 이용하여 추출
SELECT
MAX(DURATION)
FROM CDCP_ORG_PRICE A
WHERE REVAL_DATE = '20121018'
;
SELECT STATEMENT Cost = 1734
SORT AGGREGATE
TABLE ACCESS BY INDEX ROWID CDCP_ORG_PRICE
INDEX RANGE SCAN CDCP_ORG_PRICE_PK
SELECT
/*+ INDEX_DESC(A, CDCP_ORG_PRICE_PK) */
MAX(DURATION)
FROM CDCP_ORG_PRICE A
WHERE REVAL_DATE = '20121018'
AND ROWNUM <= 1
;
SELECT STATEMENT Cost = 1734
SORT AGGREGATE
COUNT STOPKEY
TABLE ACCESS BY INDEX ROWID CDCP_ORG_PRICE
INDEX RANGE SCAN DESCENDING CDCP_ORG_PRICE_PK
INDEX RANGE SCAN DESCENDING 실행 계획은 인덱스 스캔에서 발생하는 실행계획
인덱스 범위 스캔을 수행하는 과정에서 인덱스의 밑에서부터 엑세스하는 실행 계획
인덱스의 밑에서부터 엑세스하므로 해당 인덱스의 첫 번째 컬럼이 최대 값이 된다.
-----------------
INDEX JOIN도 인덱스 스탠의 한 종륲다.
1+3 인덱스와 2+4 인덱스가 있을 때, 1, 2가 WHERE 절에 포함되고, 3, 4가 SELECT 절에 포함되면 테이블에 대해 랜덤 엑세스 없이 원하는 모든 값을 추출할 수 있다.
인덱스 조인은 반드시 해쉬 조인으로만 수행된다.
1+3, 4+2 인덱스가 있는 경우 WHERE절에서 1, 2 조건, SELECT 절에서 3, 4 조회일 경우 인덱스 조인으로 수행
댓글 없음:
댓글 쓰기