아무리 데이터가많아도 인덱스를 사용하면 데이터가 금방 조회됨(소량의 데이터 조회 시)
대량의 데이터를 조회할때 인덱스를 사용하면 테이블 전체 스캔할때보다 훨씬 느리다.
인덱스 ROWID는 물리적 주소? 논리적 주소?
메인메모리 DB(MMDB)와 비교
I/O메커니즘 복습
인덱스 ROWID는 우편주소
테이블 액세스 최소화를 위해 가장 일반적으로 사용하는 튜닝기법, 인덱스 컬럼추가
무작정 인덱스를 추가할수없기에 기존 INDEX에 적절하게 컬럼을 추가한다면 성능향상을 도모할 수 있다.
-- 블록 I/O 266968건 실제 ROW 1909건, 사용여부 FILTER에서 대부분걸러짐
SELECT *
FROM 로밍렌탈
WHERE 서비스번호 LIKE '010%'
AND 사용여부 ='Y'
-- 사용여부 컬럼을 인덱스에 추가하면 블록I/O가 획기적으로 줄어듬.
- 리프 블록의ROWID로 버퍼캐시를 조회하고(SINGLE BLOCK I/O) 실패한 ROWID저장
- 실패한ROWID가 일정량 모이면 블록번호로 정렬하여 물리 읽기를 수행 (MULTIBLOCK I/O)