ORACLE等待事件相关

本文详细介绍了Oracle等待事件的发展、分类以及理解,强调了等待事件在数据库优化中的重要作用。文章详细阐述了空闲等待与非空闲等待的区别,并列举了如db file scattered read、db file sequential read等常见等待事件,提供了分析和优化建议,如调整代码、增大DB_CACHE_SIZE等,以提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、等待事件发展

oracle等待事件引入,可以更加细粒度直观地观察Oracle行为,提供oracle优化入口,大致分为三个阶段:

  • 以命中为主要参考指标:以各种命中率为主要的优化入口依据,常见的有”library cache hit radio“等,该方式具有一定的局限性,命中率高性能不一定好。
  • 以等待事件为主要参考指标:以各种等待事件为优化入口依据,比如“db_scattered_read”,可以较为明确地提供一段时间内,什么等待事件,导致现在的优化瓶颈出现。
  • 以时间模型为主要参考指标:以各种资源消耗为优化入口依据。整体地了解数据库在一段时间内的消耗情况。较等待事件方式,有更强的概括性。比如 db time;

二、等待事件分类

大致上分为空闲等待及非空闲等待事件,而非空闲等待事件可以继续更细致的划分:

select distinct(wait_class),count(*),event from v$session_wait group by wait_class,event;

 如上表示,WAIT_CLASS为 Idle表示空闲等待,其它的都是非空闲等待。

1、区分空闲等待与非空闲等待

  • 空闲等待事件:是指oracle正在等待某种工作,比如‘SQL*Net message from client’ 表示一个登录sqlplus的会话,当前正在空闲。诊断时一般不过多关注该类事件。
  • 非空闲等待事件:专门针对ORACLE的活动,指数据库任务和应用运行过程中发生的等待,这些等待事件是调整数据库时应该关注和研究的。

2、等待事件分类说明

-- 查看等待事件分类情况:
SELECT WAIT_CLASS#,WAIT_CLASS_ID, WAIT_CLASS, COUNT(*) "COUNT"
FROM V$EVENT_NAME
GROUP BY WAIT_CLASS#, WAIT_CLASS_ID, WAIT_CLASS
ORDER BY WAIT_CLASS#;
  • 管理类Administrative:此类等待事件是由于DBA的管理命令引起的,这些命令要求用户处于等待状态(比如重建索引等)。
  • 应用程序类-Application:此类等待事件是由于用户应用程序代码所引起(比如锁)。
  • 集群类(cluster):此类等待事件和真正应用群集RAC的资源有关(比如,gc cr block busy等待事件)。
  • 提交确认类-Commit:此类等待事件只包含一种等待事件----在执行一个commit命令之后,等待一个重做日志写确认(也就是 log file sync)
  • 并发类Concurrency:此类等待事件是内部数据库资源引起的(比如闩锁)
  • 配置类Configuration:此类等待事件是由数据库或者实例配置不当导致的(比如,重做日志文件尺寸太小,共享池的大小等)
  • 空闲类-Idle:此类等待事件意味着会话不活跃,等待工作比如‘SQL*Net message from client’ 
  • 网络类-NetWork:和网络相关的一些等待事件比如sql* net more data to dblink) 。
  • 其它类-Other:此类等待事件通常比较少见(比如wait for EMON to spawn) 
  • 调度类-Scheduler:此类等待事件和资源管理相关(比如resmgr: become active)
  • 系统I/O类-System I/O:此类等待事件是由后台进程I/O操作引起的(比如DBWR等待-db file paralle write)
  • 用户I/O类-User I/O:此类等待事件通常由用户I/O操作引起的(比如db file sequential read)

三、理解等待事件

  • 每一个等待事件,都表明数据库的一种活动状态;
  • 视图V$EVENT_NAME可以方便去了解每个等待事件,以及与等待事件相对应的资源的相关信息;
  • 可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值