Oracle 常见等待事件之
db file scattered read( 数据文件离散读取 ) :这个事件表明用户进程正在读数据到 Buffer Cache
中,等待直到 I/O 调用返回。 db file scattered read 发出离散读,将存储上连接的数据块离散的
读入到多个不连续的内存位置。 Scattered Read 通常是多块读,在 Full Table Scan 或 Fast
Full Scan 等访问方式下使用。 Scattered Read 代表 Full Scan ,当执行 Full Scan 读取数据
到 Buer Cache 时,通常连续的数据在内存中的存储位置并不连续,所以这个等待被命名为
Scattered Read (离散读)。每次多块读读取的数据块数量受初始化参数
DB_FILE_MULTIBLOCK_READ_COUNT 限制。根据经验,通常大量的 db file scattered read 等
待可能意味着应用问题或者索引缺失。
解决办法:
a. 运行如下语句查询(获得等待的 sql 语句):
select sql_text
from v$sqltext t,v$sql_plan p
where t.hash_value = p.hash_value
and p.operation = ‘TABLE ACCESS’('INDEX')
and p.options = 'FULL‘('FULL SCAN')
order by p.hash_value,t.piece ;
b. 给相关表添加索引或者对表进行统计分析;
评论0
最新资源