学习
实践
活动
专区
工具
TVP
写文章
专栏首页bisal的个人杂货铺与IO相关的等待事件troubleshooting-系列5

与IO相关的等待事件troubleshooting-系列5

'db file scattered read'

        这是另一种常见的等待事件。他产生于Oracle从磁盘读取多个块到Buffer Cache中非连续(" scattered")缓存的时候。这种读一次最大值是 DB_FILE_MULTIBLOCK_READ_COUNT。这种典型场景像全表扫描(Full Table Scans)和全索引快速扫描(Fast Full Index

scans)。

        如果这个等待事件占据大部分等待时间,下面的方法可以用到:

1. 找到执行全表扫描或全索引快速扫描的SQL语句,进行调优以确保这些扫描是必须的,而不是非最优执行计划导致的。

        从Oracle 9i开始,新的V$SQL_PLAN视图可以帮上忙:(忽略在这些查询结果中的数据字典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;

对于全索引快速扫描:

elect 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;

        在Oracle 8i,对于这种等待事件,通过查询V$SESSION_EVENT可以找到执行多块读的session,然后使用SQL Tracing跟踪这些session的SQL。另外,物理读Top前几位的SQL语句也能用来研究,判断他们的执行计划是否包含了全表扫描或全索引快速扫描。

2. 在这样最优执行计划就是多块读扫描的场景,可以通过调整多块IO的容量进行调优,需要修改实例参数DB_FILE_MULTIBLOCK_READ_COUNT,计算:DB_BLOCK_SIZE x DB_FILE_MULTIBLOCK_READ_COUNT = 系统的max_io_size。

(可参考:

Document 30712.1 Init.ora Parameter "DB_FILE_MULTIBLOCK_READ_COUNT" Reference

Document 1037322.6 WHAT IS THE DB_FILE_MULTIBLOCK_READ_COUNT PARAMETER?)

        正如之前所说的,从Oracle 10g R2开始,DB_FILE_MULTIBLOCK_READ_COUNT初始化参数现在可以自动调优,当未显示设置时可以使用一个默认值。这个默认值和可以高效执行的最大IO容量相关。参数值依赖于平台,对于大多数平台是1MB。因为参数是以块表示的,所以也可以设置为一个和可以高效执行的最大IO容量相当的值(被标准块容量切分)。

3.  因为使用全表扫描和全索引快速扫描的块会放到Buffer Cache取代链的最少最近使用端,有时使用多Buffer Pools,将这些段放到KEEP池中都会有所帮助。(可参考:Document 76374.1 Multiple Buffer Pools)

4. 使用分区能够降低作为分区剪裁扫描数据的数量,限制段分区的扫描子集。

5. 最后,可以考虑最长访问的段包含的数据数量(通过将旧的、不需要的数据移出数据库),或将这些段移动到新的、更快的磁盘,以降低IO的响应时间。

(未完待续)

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:http://blog.csdn.net/bisal复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 与IO相关的等待事件troubleshooting-系列1

    近来XX应用充分暴露出开发人员最初只关心功能,未考虑性能的问题,夜维、OLTP应用均出现了不同程度的与数据库相关的性能问题。

    bisal
  • 与IO相关的等待事件troubleshooting-系列6

    当Oracle从多个数据文件并行读到内存(PGA或Buffer Cache)的非连续缓冲时,可以看到这种等待事件。在恢复操作或为了优化而预处理缓冲(代替执行多...

    bisal
  • 与IO相关的等待事件troubleshooting-系列7

            这种等待事件通常产生于一个或多个控制文件的IO。像redo日志切换和检查点事件,都会产生频繁的控制文件访问。因此调优这些实践可以间接地影响这种等...

    bisal
  • 与IO相关的等待事件troubleshooting-系列4

            这是一种最常见的IO相关的等待。大多数情况下,他指的是单块读,例如索引数据块或通过索引访问的表数据块,也能在读取数据文件头块时看到这种等待事件。...

    bisal
  • 与IO相关的等待事件troubleshooting-系列3

            使用Statspack类似的工具对数据库响应时间分析之后,已经表明与IO相关的等待事件限制了系统性能,有许多的方法可以判断这种问题。

    bisal
  • 与IO相关的等待事件troubleshooting-系列2

    数据库性能调优方面一项关键的方法就是响应时间分析。找出时间都花费在数据库的哪些环节。

    bisal
  • 与IO相关的等待事件troubleshooting-系列8

            Redo日志活动期间会有很多的等待事件,而且他们大多是和IO相关的。最重要的两个就是‘log file sync’和‘log file para...

    bisal
  • 与IO相关的等待事件troubleshooting-系列9

            这种等待事件的产生原因是包含DBWR进程和IO Slaves的Buffer Cache操作。

    bisal
  • 实战 MySQL 锁等待问题的定位与排查

    在 MySQL 的实际使用中,常常会遇到一条 SQL 执行非常慢的情况,此前我们总结了一系列博客来排查相关的问题:

    用户3147702
  • 初相识|performance_schema全方位介绍(PFS)

    现在,很高兴的告诉大家,我们基于 MySQL 官方文档加上我们的验证,整理了一份可以系统学习 performance_schema 的资料分享给大家,为了方便大...

    老叶茶馆
  • 按 file 分组统计视图 | 全方位认识 sys 系统库

    在上一篇《按 user 分组统计视图 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库中按 user 分组统计的视图,类似地,本期的内容将为大家介绍...

    老叶茶馆
  • 等待事件统计视图 | 全方位认识 sys 系统库

    在上一篇《内存分配统计视图 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库如何查询内存事件统计信息和buffer pool统计信息,本期的内容先给...

    老叶茶馆
  • How to Tell if the I/O of the Database is Slow - 2

            单块IO,指一次只读一个块。例如,当一个session等待一个单块IO时,典型的等待事件就是“db file sequential read”,...

    bisal
  • 通过 JFR 与日志深入探索 JVM - 1. JFR 简介与发展

    我们都知道,黑匣子是用于记录飞机飞行和性能参数的仪器。在飞机出问题后,用于定位问题原因。JFR(Java Flight Record) 就是 Java 的黑匣子...

    干货满满张哈希
  • Tomcat NIO(5)-整体架构

    在上一篇文章里我们主要介绍了 tomcat NIO 的数据处理类,即实现读写封装的Request 和 Response,在这里我们主要介绍 NIO 整体架构。

    TA码字
  • 框架篇:linux网络I/O+Reactor模型

    网络I/O,可以理解为网络上的数据流。通常我们会基于socket与远端建立一条TCP或者UDP通道,然后进行读写。单个socket时,使用一个线程即可高效处理;...

    潜行前行
  • Java网络编程和NIO详解3:IO模型与Java网络编程模型

    本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看

    Java技术江湖
  • Tomcat NIO(1)-开篇

    在日常工程或者开发中避免不了引入 web 服务器(或者是 tcp 服务器),常用服务器有tomcat,jetty,undertow,netty 等等,对于这些服...

    TA码字
  • 配置详解 | performance_schema全方位介绍

    在上一篇 《初相识 | performance_schema全方位介绍》 中粗略介绍了如何配置与使用performance_schema,相信大家对perfor...

    沃趣科技

扫码关注腾讯云开发者

领取腾讯云代金券