db file sequential read: 대기: 단일 블록 물리 읽기, 보통 인덱스 또는 테이블 조회
Oracle의미
세션이 디스크에서 단일 블록이 읽히기를 기다린다. 보통 인덱스 접근이나 ROWID에 의한 단일 블록 읽기에서 나타나며, 일반적으로 예상되는 이벤트이다.
원인
buffer cache에 없는 블록을 디스크에서 읽음, 선택도가 낮거나 잘못된 인덱스 사용, 부족한 buffer cache, 또는 느린 스토리지 계층.
해결 방법
값이 높다면 읽기를 가장 많이 하는 SQL 문을 찾는다(AWR Top SQL, v$sql). 적절한 인덱스와 올바른 접근 경로로 쿼리를 개선하고 불필요한 nested loop를 줄인다. buffer cache 크기(DB_CACHE_SIZE)를 검토한다. 스토리지 I/O 지연을 확인한다. 이 이벤트는 대개 정상이다. 비정상적으로 높을 때는 SQL 튜닝에 집중한다.
같은 데이터베이스의 다른 항목
- ORA-02049Timeout: distributed transaction waiting for lock
- enq: TX - row lock contention대기: 다른 트랜잭션이 보유한 행 수준 락에 세션이 블로킹됨
- log file sync대기: 커밋 시 LGWR이 redo를 디스크에 플러시하기를 세션이 기다림
- db file scattered read대기: 다중 블록 물리 읽기, 보통 full table scan 또는 index fast full scan
- buffer busy waits대기: 다른 세션이 이미 읽거나 수정 중인 버퍼에 대한 경합
- gc buffer busy대기(RAC): 인스턴스 간 전송 중인 cache fusion 블록에 대한 경합
- library cache lock대기: library cache 객체 핸들 경합(parse/DDL 직렬화)