ORACLE 等待事件的分类
等待事件是总个性能调优的入口。
在总体查看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 等待事件的分类相关推荐
- 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化
一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...
- 全面解析Oracle等待事件的分类、发现及优化
作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构.设计.开发经验.著有<SQL优 ...
- oracle 会话数上不去_程序员笔记|全面解析Oracle等待事件的分类、发现及优化
一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...
- ORACLE等待事件相关
一.等待事件发展 oracle等待事件引入,可以更加细粒度直观地观察Oracle行为,提供oracle优化入口,大致分为三个阶段: 以命中为主要参考指标:以各种命中率为主要的优化入口依据,常见的有&q ...
- oracle library cache lock,【案例】Oracle等待事件library cache lock产生原因和解决办法...
[案例]Oracle等待事件library cache lock产生原因和解决办法 时间:2016-12-07 18:56 来源:Oracle研究中心 作者:网络 点击: 次 天萃荷净 O ...
- CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法
cpu quantum造成的Oracle等待事件解决办法 不少接触数据库的朋友有一个困扰已久的问题--resmgr:cpu quantum.已经遇过不少次这种CPU突然全绿的情况,通过隐含参数屏蔽了一 ...
- Oracle Study之--Oracle等待事件(3)
Oracle Study之--Oracle等待事件(3) Db file parallel read 这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系 ...
- oracle顺序读等待,Oracle Study之--Oracle等待事件(4)
Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...
- oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...
第一篇<oracle等待事件1分别用表和索引上数据的访问来产生dbfilescatteredread等待事件>http://leonarding.blog.51cto.com/604552 ...
最新文章
- 在特定索引处插入字符串
- ObjC: Foundation Kit
- IIS+ASP+MySQL8.0+中文乱码解决方案(2019.7)
- 又一个时代结束了!Adobe宣布在2020年彻底停止Flash更新
- Kafka详解与总结(七)-Kafka producer拦截器(interceptor)
- SQL注入盲注——布尔注入
- 华为android打开usb调试模式,华为P6 USB调试在哪 如何打开USB调试【详解】
- android 北斗测试,安卓手机查看是否支持北斗导航系统的详细检测方法
- Android开发实例详解之IMF(输入法)(Android SDK Sample—SoftKeyboard)
- 实验名称:在VB中对于随机数ab的比较大小
- Webstorm里面创建XMl文件
- 尽量使用unity引擎的Random随机数
- 超火的炫酷告白源码(HTML+CSS),前端表白源码,520表白,七夕情人节专属源码--文字开场白+相册旋转+浪漫3D樱花樱花雨
- 简述python文件操作_Python 文件操作的详解及实例
- 基于视频的车辆检测文献综述
- Quectel BC28-CNV 多频段、高性能、低功耗 LTE Cat NB2 无线通信模块[移远通信]
- 爬虫——图像识别和文字处理(代码极少)
- 什么是股票接口dde散户数量?
- [Linux 基础] -- Linux 内核中的 MFD 子系统
- 手机调试 H5 vue-devtools weinre fiddler