Oracle等待事件之db file scattered read
2017-04-03 00:54
405 查看
1、产生原因
该等待事件通常发生在数据库多块读时,表示发生了与全表扫描和快速索引扫描相关的等待。通常意味着全表扫描过多,或者I/O 能力不足,或者I/O 竞争。
2、确定产生问题对象方法
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'
and p.options = 'FULL'
order by p.hash_value, t.piece;
b)查找Fast Full Index 扫描的SQL 语句可以使用以下语句:
select sql_text
from v$sqltext t, v$sql_plan p
where t.hash_value = p.hash_value
and p.operation = 'INDEX'
and p.options = 'FULL SCAN'
order by p.hash_value, t.piece;
3、解决办法
(1)在合适的字段上建立索引把表的访问方式从全表扫描变为索引扫描可以有效地降低物理IO。
(2)对于大表,在合适的字段,比如年月、地区编码上建立分区把全表扫描变成分区扫描以减少物理IO。
(3)把需要经常扫描的数据库表放在KEEP 池同样会有效地降低物理IO。
(4)调整db_file_multiblock_read_count值,以达到每次读取更多数据块的目的。
该等待事件通常发生在数据库多块读时,表示发生了与全表扫描和快速索引扫描相关的等待。通常意味着全表扫描过多,或者I/O 能力不足,或者I/O 竞争。
2、确定产生问题对象方法
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'
and p.options = 'FULL'
order by p.hash_value, t.piece;
b)查找Fast Full Index 扫描的SQL 语句可以使用以下语句:
select sql_text
from v$sqltext t, v$sql_plan p
where t.hash_value = p.hash_value
and p.operation = 'INDEX'
and p.options = 'FULL SCAN'
order by p.hash_value, t.piece;
3、解决办法
(1)在合适的字段上建立索引把表的访问方式从全表扫描变为索引扫描可以有效地降低物理IO。
(2)对于大表,在合适的字段,比如年月、地区编码上建立分区把全表扫描变成分区扫描以减少物理IO。
(3)把需要经常扫描的数据库表放在KEEP 池同样会有效地降低物理IO。
(4)调整db_file_multiblock_read_count值,以达到每次读取更多数据块的目的。
相关文章推荐
- Oracle技术之了解db file scattered read等待事件
- Oracle 等待事件之 db file scattered read
- oracle等待事件1分别用表和索引上数据的访问来产生db file scattered read等待事件
- oracle之 db file sequential read等待事件优化思想
- Oracle等待事件db file parallel read
- oracle等待事件2构造一个DB File Sequential Read等待事件和构造一个Direct Path Read
- db file scattered read 等待事件
- Oracle 等待事件之 db file sequential read
- db file scattered read 等待事件
- db file scattered read等待事件
- oracle之 db file sequential read等待事件优化思想
- db file scattered read等待事件
- Oracle 等待事件之 db file parallel read
- 浅析oracle常见等待事件之 db file scattered read
- db file scattered read等待事件
- Oracle等待事件之db file sequential read/ db file parallel read
- db file scattered read -I/O上的等待事件
- I/O上的等待事件 —— db file scattered read
- 非空闲等待事件之:db file scattered read(转)
- Oracle db file parallel write 和 log file parallel write 等待事件 说明