等待事件是总个性能调优的入口。

在总体查看ORACLE数据库性能时,总是会先看TOP  N WAIT,比如:

下面我切了一段我的AWR报表内容:

Top Timed Events
     '*' Cnt : count of instances with wait times for the event
Wait  Event  Wait Time 
I# Class Event Waits
* DB CPU
User I/O db file sequential read 203,391
*
Commit log file sync 173,402
*
Network LNS wait on SENDREQ 230,029
*
Other LGWR-LNS wait on channel 403,571
*
System I/O log file parallel write 213,373
*    
  System I/O db file parallel write 82,579
*      
  System I/O control file sequential read 31,898
*      
  System I/O control file parallel write 6,894

这时可以看出,每一种等待事件的分类,从分类我们很清楚就知道,在哪种等待

消耗了更多的资源。

再成分类细化,对性能优化就有了一个很清晰的方向了。

(1.如果是USER I/O ,那么查看最大消耗的应对的 SQL SCRIPT,

2.如果是 SYSTEM I/O 查看 是什么等待事件,看是否能在数据库级别进行调优.....)

从我的报表中可以看到,第一位的还是  User I/O,并且等待事件为: db file sequential read,

引起此等待事件的原因大体为:


通常显示与单个数据块相关的读取操作,在大多数情况下,读取一个索引块或者通过索引读取一个数据块时,都会记录这个等待。

如果这个等待事件比较显著,可能表示在多表连接中,表的连接顺序存在问题,可能没有正确的使用驱动表;或者可能索引的使用存在问题,并非索引总是最好的选择。

在大多数情况下,通过索引可以更为快速地获取记录,所以对于一个编码规范、调整良好的数据库,这个等待事件很大通常是正常的。但是在很多情况下,使用索引并不是最佳的选择,比如读取较大表中大量的数据,全表扫描可能会明显快于索引扫描,所以在开发中就应该注意,对于这样的查询应该避免使用索引扫描。

ORACLE 等待事件的分类

1 ADMINISTRATIVE DBA的命令导致的等待,如重建索引
2 APPLICATION 可能是应用的代码导致的等待,比如:行级锁和显式的表锁;
3 CLUSTER RAC集群相关的等待,全局内存的等待,一个实例等待另一个实例的复制。心跳线带宽不够,实例间内存交换过于频繁。
4 COMMIT 这个类别仅和一个等待事件相关,在发出commit命令后等待redo log write 确认,这个事件是log file sync,
5 CONCURRENCY 内部资源造成的等待,如latches 
6 CONFIGURATION 由于实例或数据库资源配置不当而造成的等待,如不适当的redo log buffer size 和 shared_pool size;
7 IDLE   Session为非活动的且等待工作,此类事件属于此范畴,典型的如 'SQL*Net message from client';
8 NETWORK 基于网络的等待,如'SQL*Net more data to dblink'
9 QUEUE 基于队列的一些等待,如 'wait for EMON to spawn';
10 SCHEDULER 资源管理器相关等待,如'resmgr: become active';
11 SYSTEM I/O 系统后台产生的I/O等待,比如DBWR写LOG产生的,如DBWR wait for 'db file parallel write',比如DBWR进程不够时,这时可以添加DBWR进程。
12 USER I/O 用户产生的I/O等待
13 OTHER 通常不会发生的等待,如 'wait for EMON to spawn';

ORACLE 等待事件的分类相关推荐

  1. 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化

    一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...

  2. 全面解析Oracle等待事件的分类、发现及优化

    作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构.设计.开发经验.著有<SQL优 ...

  3. oracle 会话数上不去_程序员笔记|全面解析Oracle等待事件的分类、发现及优化

    一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...

  4. ORACLE等待事件相关

    一.等待事件发展 oracle等待事件引入,可以更加细粒度直观地观察Oracle行为,提供oracle优化入口,大致分为三个阶段: 以命中为主要参考指标:以各种命中率为主要的优化入口依据,常见的有&q ...

  5. oracle library cache lock,【案例】Oracle等待事件library cache lock产生原因和解决办法...

    [案例]Oracle等待事件library cache lock产生原因和解决办法 时间:2016-12-07 18:56   来源:Oracle研究中心   作者:网络   点击: 次 天萃荷净 O ...

  6. CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法

    cpu quantum造成的Oracle等待事件解决办法 不少接触数据库的朋友有一个困扰已久的问题--resmgr:cpu quantum.已经遇过不少次这种CPU突然全绿的情况,通过隐含参数屏蔽了一 ...

  7. Oracle Study之--Oracle等待事件(3)

    Oracle Study之--Oracle等待事件(3) Db file parallel read 这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系 ...

  8. oracle顺序读等待,Oracle Study之--Oracle等待事件(4)

    Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...

  9. oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...

    第一篇<oracle等待事件1分别用表和索引上数据的访问来产生dbfilescatteredread等待事件>http://leonarding.blog.51cto.com/604552 ...

最新文章

  1. 在特定索引处插入字符串
  2. ObjC: Foundation Kit
  3. IIS+ASP+MySQL8.0+中文乱码解决方案(2019.7)
  4. 又一个时代结束了!Adobe宣布在2020年彻底停止Flash更新
  5. Kafka详解与总结(七)-Kafka producer拦截器(interceptor)
  6. SQL注入盲注——布尔注入
  7. 华为android打开usb调试模式,华为P6 USB调试在哪 如何打开USB调试【详解】
  8. android 北斗测试,安卓手机查看是否支持北斗导航系统的详细检测方法
  9. Android开发实例详解之IMF(输入法)(Android SDK Sample—SoftKeyboard)
  10. 实验名称:在VB中对于随机数ab的比较大小
  11. Webstorm里面创建XMl文件
  12. 尽量使用unity引擎的Random随机数
  13. 超火的炫酷告白源码(HTML+CSS),前端表白源码,520表白,七夕情人节专属源码--文字开场白+相册旋转+浪漫3D樱花樱花雨
  14. 简述python文件操作_Python 文件操作的详解及实例
  15. 基于视频的车辆检测文献综述
  16. Quectel BC28-CNV 多频段、高性能、低功耗 LTE Cat NB2 无线通信模块[移远通信]
  17. 爬虫——图像识别和文字处理(代码极少)
  18. 什么是股票接口dde散户数量?
  19. [Linux 基础] -- Linux 内核中的 MFD 子系统
  20. 手机调试 H5 vue-devtools weinre fiddler

热门文章

  1. PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)
  2. linux-git服务搭建
  3. [driver]linux内核动态加载模块
  4. entity reference在views中的运用
  5. 关于数据库隔离问题说明及解决
  6. Xcode 4.4 的新特性 | LLVM 4.0 的新语法
  7. linux shell编程之菜单选择(二)
  8. CentOS 7下安装Python3.6.4
  9. iOS学习之CoreLocation相关知识
  10. 如何打造一款出色的APP