인덱스를 통한 Table Random Access는 Single Block I/O으로 작동하기에 엄청난 부하를 유발하는데, 심지어 버퍼 캐시 경유 비용 + 래치 경합까지 발생할 수 있어 로우가 많아 질수록 각종 Wait Event가 발생해 성능이 급격히 저하되었다.
-> 실행계획 : TABLE ACCESS BY INDEX ROWID BATCHED
-> 위 성능 개선을 위해 12c 부터 batch I/O 추가
BATCH I/O
1. 인덱스를 통해 버퍼 캐시에서 찾지 못하면 DISK I/O(TABLE SCAN) 했던 SINGLE I/O 방식이 아니라
2. DISK I/O 를 잠시 미루고 일정량 모은 뒤 일괄 처리 방식
* ROWID 로 버퍼 캐시 조회 -> 실패 시 ROWID 저장
* 위 과정 반복하여 ROWID 일정량 저장 후 블록 번호 정렬하여 Multi Block I/O 수행
* 다만 위 방식은 정렬이 되지 않음.
'Database' 카테고리의 다른 글
| Sort Merge Join (0) | 2025.12.04 |
|---|---|
| NL(Nested Loop) Join (0) | 2025.12.04 |
| 부분범위 처리 (0) | 2025.12.04 |
| 다중 컬럼 인덱스(복합 인덱스) (0) | 2025.12.04 |
| [Database] FTP & SFTP (0) | 2023.04.19 |