오라클을 포함한 모든 DBMS에서는 블록과 비슷한 단위를 통해 I/O 작업을 수행하며, 대표적인 예시는 아래와 같다.
모든 DBMS는 사용 빈도가 높은 데이터 블록들이 더 오랫동안 남아있도록 하기 위해서 LRU 알고리즘을 사용한다.
모든 버퍼 블록 헤더를 LRU 체인에 연결해서 사용 빈도에 따라 수시로 위치를 옮기다가, Free 버퍼가 필요해질 때면 액세스 빈도가 낮은 데이터 블록들을 우선적으로 밀어낸다.
시퀀셜 액세스는 논리적 또는 물리적으로 연결된 순서에 따라 차례로 블록을 읽어나가는 방식이다. 인덱스와 테이블을 스캔할 때 이 방식을 사용한다.
랜덤 액세스는 논리적, 물리적 순서를 따르지 않고, 레코드 하나를 읽기 위해 한 블록 씩 접근하는 방식이며, 인덱스를 스캔하며 얻은 ROWID를 통해 액세스할 때 이 방식을 사용한다.
Singleblock I/O는 한 번의 I/O Call에 하나의 데이터 블록만 읽어서 버퍼 캐시에 적재하는 방법으로, 인덱스를 통한 접근 시 인덱스와 테이블 모두 이 방식을 사용한다. (db file sequential read 대기 이벤트가 발생할 수 있다.)
multiblock I/O는 캐시에서 찾지 못한 불특정 블록을 읽으려고 I/O Call을 할 때 디스크 상에서 해당 블록과 인접한 블록들을 한꺼번에 읽어 캐시에 미리 적재하는 기능이다.
Multiblock I/O는 db_file_multiblock_read_count 파라미터에 의해 결정되고, 익스텐트 범위를 넘지 못한다. (db file scattered read 대기 이벤트가 발생할 수 있다.)