문서의 이전 판입니다!
3.2.1. 스캔(Scan)의 기본유형
3.2.1.1. 전체테이블 스캔
3.2.1.1. 전체테이블 스캔
HIGH WATER MARK내에 있는 모든 블록을 스캔
대용량 일수록 전략적으로 사용하면 인덱스 스캔에 비하여 좋은 효율을 나타낼 수 있음(손익 분기점)
멀티 블록 I/O
DB_FILE_MULTIBLOCK_READ_COUNT 파라미터 사용
옵티마이져의 전체 테이블 스캔 선택 사유
적용가능 인덱스의 부재
넒은 범위의 데이터 액세스
소량의 테이블 액세스
병렬처리 액세스
3.2.1.2. ROWID 스캔
3.2.1.3. 인덱스 스캔
ex)
SELECT * FROM TAB1
WHERE COL1 = ‘A’
<code sql> ex)
SELECT * FROM TAB1
WHERE COL2 BETWEEN 100 AND 110</code>
<code sql> ex)
SELECT COL2 FROM TAB1
WHERE COL2 BETWEEN 100 AND 110
ORDER BY COL1 DESC
</code>
라)인덱스 스킵 스캔(Index Skip Scan)
ORACLE 9i부터 적용
Cardinality가 낮은 선행 컬럼 + 높은 후행칼럼으로 구성된 인덱스일수록 큰 효과
내부적으로 선행 컬럼 값의 Distinct Value 만큼의 Logical Sub-Index로 나눠서 SCAN한다.
Analyze 되어있는 오브젝트에 적용된다.
마)인덱스 전체 스캔(Index Full Scan)
바)인덱스 고속 전체 스캔(Index Fast Full Scans)
3.2.1.4. B-Tree 클러스터 액세스(Cluster access)
3.2.1.5. 해쉬 클러스터 액세스(Hash cluster access
3.2.1.6. 표본 테이블 액세스(Sample table scan