db file scattered read等待事件

原创 2017-07-22 Oracle 宅必备

从今天开始讲解awr报告Top 5 Timed Events部分

今天讲scattered read等待事件

db file scattered read

物理读发生在一个用户需要的数据块不在SGA,从而将其从磁盘读取到SGA中

如果此时别的会话需要该数据块则必须等待这个过程结束,这时就产生了等待

离散读是物理读的一种方式,这里的离散指的是读取数据块到一块离散(不连续)的内存区域,而且一般读取多个数据块( multi-block read),可能为单个数据库

如该等待严重则说明该数据块存在严重的争用情况

每次读取的块数由DB_FILE_MULTIBLOCK_READ_COUNT参数控制

这点不同于sequential read,可参考下一篇关于sequential read 的文章

下图为各种读取方式的比较

何时会发生

多数据块读(multi-block read)是由SQL语句引起的(用户发出或者递归调用)

一般发生在以下情况:

全表扫描( full table scans )

索引快速全扫描( index fast full scans)

如何处理

由于物理读是非常正常的,出现这个等待事件不意味着数据库出现性能问题

但是如果我们在TOP 5 Wait Event中看到其处于非常前的位置(第二甚至第一)时就需要引起我们的注意了,OLTP系统中应避免此等待

特别需要关注Avg Waits 参数,最好小于10ms,这里可采用如下方法进行解决

将数据文件放在高速磁盘中,提高读取性能

将数据文件放在LUN(即一些存储设备)中,可确保数据块分散在足够多的磁盘中

在优化磁盘的同时,我们还需要注意应用程序的SQL语句问题,因为一般这种等待都是SQL语句造成的,我们需要找出相应的SQL语句

通过执行计划进行优化判断全表扫描或者索引全扫描是否合理,是否使用了合适的驱动表,以需要达到减少物理读和逻辑读的目的

执行计划中 HASH JOIN和SORT MERGE动作(operation)会导致scattered read

可增加 DB_FILE_MULTIBLOCK_READ_COUNT参数的值来减少IO次数

调整HASH_AREA_SIZE 和OPTIMIZER_INDEX_COST_ADJ 参数的值也可用来优化scattered read

保证统计信息的及时性

如下是一些常用的诊断方式,通过下面方式定位到具体的会话,在通过sql_id或hash_value找出具体的语句用于优化

1. 查看当前正在等待的会话

我们可以查看v$session_wait 视图的TIME_WAITED栏位来定位当前哪个会话等待 scattered read过长时间(实时)

select * from v$session_Wait where event = 'db file scattered read'

P1代表File ID,可通过dba_data_File视图的FILE_ID字段看出是哪个数据文件

P2代表 First block,即该块在数据库上开始的位置

P3代表块数,该值的取值范围为1-DB_FILE_MULTIBLOCK_READ_COUNT的值

我们可以通过P1 P2参数得出对象的名称和类型

select

segment_name,

segment_type

from

dba_extents

where

file_id = 15

and

1106397 between

block_id and (block_id + blocks - 1);

2.查看从实例启动以来等待的会话

使用 v$session_event视图来定位哪个会话等待 scattered read过长时间(非实时)

也可使用v$system_event视图查看系统整体的等待事件

SELECT sid, total_waits, time_waited

FROM v$session_event

WHERE event='db file scattered read'

and total_waits>0

ORDER BY 3 desc ,2

注意由于SID是可以复用的,这样查出来的有可能有问题

比如查看SID为587的会话对应的语句也有可能是上个SQL语句导致的scattered read等待,这点需要注意

查看高物理读的数据文件

我们可以通过awr报告中的 Tablespace IO Stats 和File IO Stats 区域来定位最多IO操作的表空间和数据文件,如果可以请将其放置在高速的磁盘中(SSD)

查看高物理读的SQL语句

同样可以查看v$sql中高物理读的语句以及awr SQL ordered by Reads区域

参考资料

oracle awr 等待事件,3.db file scattered read等待事件相关推荐

  1. 浅析oracle常见等待事件之 db file scattered read

    浅析oracle常见等待事件之 db file scattered read(转) 原文地址: http://www.hellodml.com/2011/12/%E6%B5%85%E6%9E%90or ...

  2. db file scattered read(转载文章)

    db file scattered read 一:db file scattered read说明 二:db file scattered read解决思路 三:db file scattered r ...

  3. oracle db file sequential read,2.db file sequential read等待事件

    db file sequential read等待事件 原创 2017-07-22 Oracle 宅必备 开始讲解awr报告Top 5 Timed Events部分 今天讲db file sequen ...

  4. oracle db file sequential read,详解 db file sequential read 等待事件

    db file sequential read (本文由翻译,转载请注明出处) db file sequential read 事件有三个参数:file#,first block#, block co ...

  5. 深入了解db file parallel read等待事件

    我们平日所常见的User I/O类物理读等待事件包括db file sequential read和db file scattered read,相信细心的同学也见过db file parallel ...

  6. oracle db file sequential read,db file sequential read等待事件

    Waits on 'db file sequential read' normally occur during index lookups when the block is not in memo ...

  7. oracle gc buffur,【性能調優】Oracle AWR報告指標全解析

    1-1  內存參數大小 Cache Sizes                       BeginEnd ~~~~~~~~~~~                  ---------- ----- ...

  8. Oracle AWR报告详细分析

    Oracle AWR报告详细分析  (文档 ID 1523048.1) AWR 是 Oracle  10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动 ...

  9. 【性能调优】Oracle AWR报告指标全解析

    [性能调优]Oracle AWR报告指标全解析 啥是AWR? ===================================================================== ...

最新文章

  1. centos6.x 安装php5.6 tar,CentOS6.x安装php5.6.x
  2. Flex Application里的addChild()
  3. Rest风格的URL地址约束||高版本Tomcat;Rest支持有点问题
  4. PHP基础示例:用PHP+Mysql编写简易新闻管理系统
  5. C++虚函数Demo - Win32 版本
  6. HTML5 编辑 API 之 Range 对象(一)
  7. Docker框架使用系列教程(七)Dockerfile镜像创建
  8. linux sublime3 插件安装插件,手动安装sublimeText3插件
  9. SAP License:SAP上线期初导入方法
  10. 【转】无法打开登录所请求的数据库 xxxx。登录失败。 用户 'xxxxx' 登录失败。...
  11. Java中File类的separator属性
  12. WPS Office 2012兼容全部Office格式,为办公带来了很多便利
  13. 增强安全性、支持跨页逻辑关系设定的电信运营级EnableQ在线问卷调查引擎V1.60来了...
  14. 最小二乘法曲线拟合(MATLAB)
  15. Django 开发文档
  16. Phaser学习笔记
  17. Tesseract学习(一)
  18. 群友转发了一段家庭矛盾的视频
  19. 电脑快捷键你知道多少个?QQ截图快捷键ctrl加什么
  20. 豆芽的生长过程观察日记-2020年

热门文章

  1. 将资源文件中的数据写回磁盘
  2. 降低网站跳出率的六个方法(亲身使用)
  3. Could not autowire field: private javax.servlet.http.HttpServletRequest
  4. OIer同样是音乐家
  5. 大中型网站集群架构企业级高标准全自动实战项目征集
  6. asp.net 中chartlet 统计图表的的使用
  7. 屌丝逆袭高富帅之JAVA之路
  8. Class,表名,表单参数名关系
  9. 基于Chrome的扩展开发(二)
  10. 智能实验室-全能优化(Guardio) 4.92.0.812