db file scattered read: 等待:多块物理读,通常为全表扫描或索引快速全扫描
Oracle含义
会话等待从磁盘读取多个块(multiblock)。通常发生在全表扫描或索引快速全扫描期间。
原因
缺少合适的索引导致全表扫描、统计信息过时导致执行计划错误、扫描非常大的表,或所选访问路径退化为表扫描。
解决方法
找出执行全扫描的 SQL 语句,添加所需索引或确保使用现有索引。更新统计信息:DBMS_STATS.GATHER_TABLE_STATS。如果确实需要大范围扫描,考虑并行查询或分区。检查 DB_FILE_MULTIBLOCK_READ_COUNT 和存储吞吐量。
同一数据库的其他条目
- enq: TX - row lock contention等待:会话被另一事务持有的行级锁阻塞
- log file sync等待:会话在提交时等待 LGWR 将 redo 刷新到磁盘
- db file sequential read等待:单块物理读,通常为索引或表查找
- buffer busy waits等待:争用一个正被其他会话读取或修改的缓冲区
- gc buffer busy等待(RAC):争用正在实例间传输的 cache fusion 块
- library cache lock等待:library cache 对象句柄争用(解析/DDL 串行化)
- ORA-00604error occurred at recursive SQL level(递归 SQL 级别出错)