db file sequential read: 等待:单块物理读,通常为索引或表查找
Oracle含义
会话等待从磁盘读取单个块。通常出现在索引访问或按 ROWID 的单块读中;一般属于正常事件。
原因
不在 buffer cache 中的块需要从磁盘读取、索引选择性差或使用了错误的索引、buffer cache 不足,或存储层慢。
解决方法
如果偏高,找出读取最多的 SQL 语句(AWR Top SQL、v$sql)。通过合适的索引和正确的访问路径改进查询,减少不必要的嵌套循环。评估 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等待:多块物理读,通常为全表扫描或索引快速全扫描
- buffer busy waits等待:争用一个正被其他会话读取或修改的缓冲区
- gc buffer busy等待(RAC):争用正在实例间传输的 cache fusion 块
- library cache lock等待:library cache 对象句柄争用(解析/DDL 串行化)