最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

HighWaitson'DbFileSequentialRead'Due

来源:懂视网 责编:小采 时间:2020-11-09 07:36:47
文档

HighWaitson'DbFileSequentialRead'Due

HighWaitson'DbFileSequentialRead'Due:最近某些系统AWR的top 5中Db File Sequential Read占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇关于这种等待事件的介绍,这是其中一篇。
推荐度:
导读HighWaitson'DbFileSequentialRead'Due:最近某些系统AWR的top 5中Db File Sequential Read占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇关于这种等待事件的介绍,这是其中一篇。

最近某些系统AWR的top 5中“Db File Sequential Read”占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇关于这种等待事件的介绍,这是其中一篇。

最近某些系统AWR的top 5中“Db File Sequential Read”占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇关于这种等待事件的介绍,这是其中一篇。


High Waits on 'Db File Sequential Read' Due to Table Lookup Following Index Access (文档 ID 875472.1)

即使执行计划已经是最优的了,但一次查询仍能够等待“db file sequential read'”这种事件很长的时间。通常是因为索引扫描的结果集非常大。例如:

SELECT D
FROM BIG_TABLE
WHERE A = 1253
AND B in ('CA', 'CO')
AND C > 210 ;

Rows Row Source Operation
------- ---------------------------------------------------
 215431 TABLE ACCESS BY INDEX ROWID BIG_TABLE (cr=880191 pr=430780 pw=0 time=2293667056 us) <<<
3582275 INDEX RANGE SCAN BIG_TABLE_IDX (cr=664748 pr=218595 pw=0 time=352506821 us)

Elapsed times include waiting on following events:
 Event waited on Times Max. Wait Total Waited
 ---------------------------------------- Waited ---------- ------------
 SQL*Net message to client 14363 0.00 0.02
 db file sequential read 461688 1.15 2254.55 <<<
 SQL*Net message from client 14363 0.01 9.77
 SQL*Net break/reset to client 1 0.00 0.00
...

在大多数这样的例子中,执行查询语句在“TABLE ACCESS BY INDEX ROWID”上的等待要比INDEX SCAN上需要更多的。这是因为随机访问表行的代价要比索引扫描更大。


为此,可以有以下几种方法调试:

1. 检查是否有更好的索引或执行计划。可能需要重新设计索引。

2. 尝试全表扫描。全表扫描通常比索引扫描要快,尽管CBO成本比索引扫描的成本高。

SELECT /*+ FULL(BIG_TABLE) */ D
FROM BIG_TABLE
WHERE A = 1253
AND B in ('CA', 'CO')
AND C > 210 ;

3. 如果仅仅有很少的列出现在SELECT和WHERE子句中,可以考虑为查询创建一个复合索引避免回表。

例如:

CREATE INDEX ON BIG_TABLE (A, B, C, D);

注意:仅针对SELECT语句有效。如果是UPDATE语句,这种做法可能没用。

4. 将表移动到更大block块大小的表空间。更大的block块会有更多的行,所以对减少block块IO会有帮助。重新组织表也会有帮助,因为这样做可以让索引有一个更小的clustering聚类因子。

5. 可以考虑增加buffer cache的大小,以至于可以缓存更多的块大小。如果表是频繁访问的,使用keep buffer池也是一个不错的选择。

6. 考虑使用IOT(索引组织表)。IOT可能减少IO,原因就是他会将数据存储于一个B树索引结构。例如,如果A列是表BIG_TABLE的主键,可以按照如下方法创建IOT:

create table BIG_TABLE (A number primary key, B char(2), C number, D varchar2(10)) organization index;

7. 如果服务器有足够的空闲资源(CPU,内存),考虑使用并行执行。这种方式不会减少IO,但是有助于降低执行时间。

8. 较差的磁盘IO也可能是一个原因。可以提高表所在磁盘设备的IO。这可能需要系统管理员的协助。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

HighWaitson&#39;DbFileSequentialRead&#39;Due

HighWaitson'DbFileSequentialRead'Due:最近某些系统AWR的top 5中Db File Sequential Read占据的时间百分比非常大,通常这种等待事件是一种正常的。但当前系统性能是有些问题的,并发量大,有些缓慢,因此需要判断这种等待事件是否能够减少。MOS有几篇关于这种等待事件的介绍,这是其中一篇。
推荐度:
标签: re File son
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top