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. 礼物——最牛午饭证!
  2. android9.0首发机型,安卓9.0正式发布,EMUI开启多款机型同步内部测试
  3. 关于cn.jedisoft.framework.annotations 的增删改查
  4. vsts~CI/CD实现自动化编译
  5. A Complete Machine Learning Walk-Through in Python
  6. python 整数输出 d f_pythn print格式化输出---------%s 和 % d 都是什么意思?
  7. java awt 边距_Java Swing - 使用Line Border在TextArea上设置边距
  8. 2.图像作为函数 | 图像的量化、大小、类型、位置以及Matlab使用_4
  9. oracle的一些常见问题及处理
  10. 如果你想精通一个行业,那必须进入这个行业
  11. 基于EfficientNet网络的植物叶部病害分类
  12. sqlite 数据库 boolean类型的小小测试
  13. 个人收集的IT技术网站集合,涉及web前后端,大数据,UI设计等。
  14. 依托智慧警务 打造城市公共安全防控新模式
  15. 云备份-保障你的数据安全
  16. OKHttp源码解析 (复用连接池)
  17. FFMPEG录屏(1)----录制桌面
  18. ping主机时显示 Request Time Out Destination Unreachable TTL Expired in transit
  19. 告别用了8年的QQ浏览器,这也许是我换浏览器的原因吧
  20. 最近有两个请了专业团队做地推

热门文章

  1. Visual Basic 9.0 前沿播报·静态篇(一)局部变量类型推测和数组初始化器
  2. MySql——安装与配置与启动和停止
  3. 从0到1学C++ 第3篇 从结构到类的演变
  4. JavaScript思维导图之数组
  5. 微软代码签名证书使用指南
  6. ((ios开发学习笔记五))手动创建Tab Bar Controller 程序
  7. 邮件服务器收发邮件时常发生的问题
  8. 网络工程师职业发展路线图
  9. 虚拟化何以四两拨千斤
  10. QoS是否提供更多带宽?-Vecloud