等待事件 wait event

衡量数据库状况, 优化数据库等

当一个进程连接到数据库后, 进程所经历的种种等待就开始被记录, 并且通过一系列的性能视图进行展示, 通过等待事件用户可以很快发现数据库的性能瓶颈, 从而进行针对性能的优化和分析.

v$event_name

oracle 等待事件主要分两类: 空闲等待(idle) 和 非空闲等待(non-idle)

空闲等待: 指 oracle 正等待某种工作, 在诊断和优化数据库的时候, 不用过多注意这部分事件

非空闲等待: 专门针对oracle的活动, 指数据库任务或应用运行过程中发生的等待, 这些等待事件是, 在调整数据库时应该关注和研究的.

从等待事件发现瓶颈

v$session, 记录当前连接的 session 信息

v$session_wait 记录当前数据库连接的活动session正在等待的资源或事件信息

v$system_event 记录数据库自启动以来所有等待事件汇总

v$sqltext, 通常数据库出现瓶颈时, 可以通过v$session_wait找到正在等待资源的session, 通过session的sid, 联合v$session 和 v$sqltext视图就可以捕获这些 session 正在执行的 sql 语句.

例如:

1. select sid, event, p1, p1 text from v$session_wait;

2. select sql_text

from v$sqltext a

where a.hash_value = (select sql_hash_value from v$session b where b.sid = ‘&sid’)

order by piece ASC

3. 使用该用户连接, 检查sql 执行计划

set autotrace trace explain

执行该(有问题的) sql 语句

发现问题, 比如全表扫描 等, 进一步分析原因, 比如在某列上没有索引导致, 处理问题

4. 检查问题是否解决完成

select sid, event, p1, p1 text from v$session_wait;

10g 以后, 新增加了 v$session_wait_history 视图, 这样就可以在查看前一天是否有比较严重的等待事件, 也可以对比前一天和当天等待事件的不同.

ASH 新特性(根本性变革)

如果说 v$session_wait_history 是一小步, 那么 ASH 则是一大步, ASH 以 v$session为基础, 每秒钟采样一次, 记录活动会话等待事件.

顶级等待事件

利用 v$system_event 视图

select * from (select event, time_waited from v$system_event order by time_waited desc)

where rownum < 10;

查询最严重的前10个等待事件, 然后找出问题根源进行处理.(statspack Report 中的 Top 5 就是参考的这个)

重要等待事件

db file sequential read 数据文件顺序读取, User I/O 类, 如果这个等待事件比较显著, 可能表示在多表连接中, 表的连接顺序存在问题

db file scattered read 数据文件离散读取, User I/O 类,通常大量的 db file scattered read 等待可能意味着应用问题或索引缺失.

direct path read/write 直接路径读/写, 磁盘排序等会触发, 临时表空间使用肯定频繁(排序么肯定使用临时表空间), 这时候可以适当增大临时表空间, 修改参数.

enqueue: 队列等待, 对共享资源的锁定机制, 例如: enq: PW – flush prewarm buffers

latch free: 闩锁释放

等待事件 wait event

时间: 2024-11-06 07:15:57

等待事件 wait event的相关文章

oracle 11gr2 null event等待事件

近日,一环境分析的时候,发现ash中在某一时刻有"null event"等待事件,版本为oracle 11.2.实际上该事件在oracle 9.2.0.4之后就几乎极少出现的. NULL EVENT-Oracle等待事件 Wait Event 当会话在等待一个不知名的事件时,会话session的event被标记为NULL EVENT,即虽然session在等待,但是Oracle RDBMS software没有对现在等待事件做命名(naming). 等待时间 该事件的等待时间取决于其当

DBA_Oracle Event等待事件分析(概念)

2014-12-18 BaoXinjian 一.摘要 Oracle的等待事件是衡量Oracle运行状况的重要依据及指标. 等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件. 在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件. 二.等待事件分类 主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件. 1. 空闲事件指Oracle正等待某种工作,在诊

Oracle Study之--Oracle等待事件(1)

Oracle Study之--Oracle等待事件(1) 一. 等待事件的相关知识1.1 等待事件主要可以分为两类: 即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件.2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件 是在调整数据库的时候需要关注与研究的.在Oracle 10g中的等待事件有874个,11g中等待事件1118个.

【翻译自mos文章】找到&#39;cursor: pin S wait on X&#39; 等待事件的阻塞者session(即:持有者session)

找到'cursor: pin S wait on X' 等待事件的阻塞者session(即:持有者session) 来源于: How to Determine the Blocking Session for Event: 'cursor: pin S wait on X' (Doc ID 786507.1) 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2

PX Deq: Execution Msg,PX Deq: Execute Reply等待事件

PX Deq: Execution Msg Occurs when a parallel slave is waiting to be told what to do. This is normally considered an idle event, but can cause excessive CPU in some cases. Solution Reduce the degree of parallelism in the query if excessive CPU usage i

Oracle Study之--Oracle等待事件(5)

Oracle Study之--Oracle等待事件(5)  Db file single write这个等待事件通常只发生在一种情况下,就是Oracle 更新数据文件头信息时(比如发生Checkpoint).当这个等待事件很明显时,需要考虑是不是数据库中的数据文件数量太大,导致Oracle 需要花较长的时间来做所有文件头的更新操作(checkpoint).这个等待事件有三个参数:File#: 需要更新的数据块所在的数据文件的文件号.Block#: 需要更新的数据块号.Blocks: 需要更新的数

truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件

有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug 7385253 - Slow Truncate / DBWR uses high CPU / CKPT blocks on RO enqueue (文档 ID 7385253.8) Bug 9761199 - PMON hang on 'enq: ro - fast object reuse' (文

【等待事件】等待事件系列(5.1)--Enqueue(队列等待)

[等待事件]等待事件系列(5.1)--Enqueue(队列等待)   1  BLOG文档结构图   2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Enqueue队列等待 ② Enq数据字典 ③ enq: AE - lock ④ enq: MR锁 ⑤ enq: DX - contention ⑥ enq: SQ - contention 序列等待     2.2  相关参考文章链接 [推

等待事件

1  等待事件的源起 等待事件的概念大概是从ORACLE 7.0.12中引入的,大致有100个等待事件.在ORACLE 8.0中这个数目增大到了大约150个,在ORACLE 8I中大约有220个事件,在ORACLE 9IR2中大约有400个等待事件,在ORACLE 10GR2中,大约有874个等待事件,在11GR2中约有1000多个等待事件. 虽然不同版本和组件安装可能会有不同数目的等待事件,但是这些等待事件都可以通过查V$EVENT_NAME视图获得: 10.2.0.5版本: select c