oracle非空闲等待,oracle 非空闲等待事件排查

想必大家都知道Oracle的等待时间分为两种,一种我们称之为“空闲等待事件”,另外一种称之为“非空闲等待事件”。

“空闲等待事件”——作为DBA可以不用过分的关注这类等待事件。

“非空闲等待事件”——当DBA发现这一类的等待事件的时候,就要提高警惕了,因为这一类的等待事件出现后,往往说明应用程序出现了不应该有的等待问题,需要逐一的排查。

得到等待事件的动态性能视图是v$session_wait,不过要快速的排除“空闲等待事件”得到我们关心的等待事件该如何做呢?

这里给出我想到的三种方法。

这里演示的数据库版本是Oracle 10.2.0.3

sys@ora10g> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi

PL/SQL Release 10.2.0.3.0 - Production

CORE    10.2.0.3.0      Production

TNS for Linux: Version 10.2.0.3.0 - Production

NLSRTL Version 10.2.0.3.0 - Production

1.第一种方法

如果数据库中我们部署过statspack,那我们会得到一个比较有趣的视图perfstat.stats$idle_event,这个视图汇总了所有的空闲等待事件,我们排除这个视图中的内容后就可以得到我们关心的内容了。

脚本如下:

select sid,p1,p1raw,p2,p2raw,p3,p3raw,wait_time,seconds_in_wait,state,event

from v$session_wait

where event not in (select event from perfstat.stats$idle_event)

2.第二种方法

如果没有部署statspack,可以通过系统的另外一个视图得到近似的空闲等待事件的列表,这个视图就是v$event_name,当wait_class字段为“Idle”时,就可以得到空闲等待事件。

脚本如下:

select sid,p1,p1raw,p2,p2raw,p3,p3raw,wait_time,seconds_in_wait,state,event

from v$session_wait

where event not in (select name from v$event_name where wait_class='Idle')

;

3.第三种方法

这种方法是比较“笨”的方法,不过也非常的有效,就是将我们知道的空闲等待事件统统的列到脚本里。

脚本如下:

select sid,p1,p1raw,p2,p2raw,p3,p3raw,wait_time,seconds_in_wait,state,event

from v$session_wait

where event not in (

'AQ Proxy Cleanup Wait',

'ASM background timer',

'DIAG idle wait',

'EMON idle wait',

'KSV master wait',

'LNS ASYNC archive log',

'LNS ASYNC dest activation',

'LNS ASYNC end of log',

'LogMiner: client waiting for transaction',

'LogMiner: slave waiting for activate message',

'LogMiner: wakeup event for builder',

'LogMiner: wakeup event for preparer',

'LogMiner: wakeup event for reader',

'Null event',

'PX Deq Credit: need buffer',

'PX Deq Credit: send blkd',

'PX Deq: Execute Reply',

'PX Deq: Execution Msg',

'PX Deq: Par Recov Execute',

'PX Deq: Signal ACK',

'PX Deq: Table Q Normal',

'PX Deq: Table Q Sample',

'PX Deque wait',

'PX Idle Wait',

'Queue Monitor Shutdown Wait',

'Queue Monitor Slave Wait',

'Queue Monitor Wait',

'SQL*Net message from client',

'SQL*Net message to client',

'SQL*Net more data from client',

'STREAMS apply coord waiting for slave message',

'STREAMS apply slave idle wait',

'STREAMS apply slave waiting for coord message',

'STREAMS capture process filter callback wait for ruleset',

'STREAMS fetch slave waiting for txns',

'STREAMS waiting for subscribers to catch up',

'Streams AQ: RAC qmn coordinator idle wait',

'Streams AQ: deallocate messages from Streams Pool',

'Streams AQ: delete acknowledged messages',

'Streams AQ: qmn coordinator idle wait',

'Streams AQ: qmn slave idle wait',

'Streams AQ: waiting for messages in the queue',

'Streams AQ: waiting for time management or cleanup tasks',

'Streams fetch slave: waiting for txns',

'class slave wait',

'client message',

'dispatcher timer',

'gcs for action',

'gcs remote message',

'ges remote message',

'i/o slave wait',

'jobq slave wait',

'knlqdeq',

'lock manager wait for remote message',

'master wait',

'null event',

'parallel query dequeue',

'pipe get',

'pmon timer',

'queue messages',

'rdbms ipc message',

'slave wait',

'smon timer',

'virtual circuit status',

'wait for activate message',

'wait for unread message on broadcast channel',

'wakeup event for builder',

'wakeup event for preparer',

'wakeup event for reader',

'wakeup time manager')

/

-- The End --

30种oracle常见的等待事件说明

1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: 当一个会话视图修改一个数据块,但这 ...

oracle常见的等待事件说明

转自 http://blog.itpub.net/29371470/viewspace-1063994/ 1. Buffer busy waits 从本质上讲,这个等待事件的产生仅说明了一个会话在等待 ...

Oracle中常见的33个等待事件小结

在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息     一. 等待事件的相关知识 1.1 等待事件主要可 ...

ORACLE 常见等待事件

一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候, ...

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

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

Oracle等待事件之等待事件详解

一. 等待事件的相关知识:1.1 等待事件主要可以分为两类:即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候, ...

【Oracle】等待事件详细内容

一.等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不 ...

Oracle 常见的33个等待事件

一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指Oracle正等待某种工作,在诊断和优化数据库的时 ...

随机推荐

request is not finfished yet!

在项目测试的时候发现一个问题.当数据量特别多的时候,我一次性查询几万条数据的时候,就会出现很卡很慢的状态. 我把sql优化了,但是出现同样的问题.我要从后台得到数据显示在页面上来.就需要知道是查询慢, ...

编译升级php

http://www.linux-centos.com/2014/11/16/%E7%BC%96%E8%AF%91%E5%8D%87%E7%BA%A7%E4%BB%8Ephp5-2-17%E5%88% ...

>=ios8 应用内跳转到系统设置界面-openURL

iOS8以后,苹果允许从应用内跳转到系统设置,但是调试结果表明,跳不到具体的设置项,使用前应该判断当前是否能够跳转到系统设置. 代码: NSURL *url = [NSURL URLWithStrin ...

veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响

veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响 续接veridata实验系列  上篇:"veridata实验举例(5)改动主键上的列值.update ...

ES6常用语法

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

自动生成CHANGELOG.md

$ npm install -g conventional-changelog-cli $ cd my-project $ conventional-changelog -p angular -i C ...

spoj1026Favorite Dice

题意翻译 一个n面的骰子,求期望掷几次能使得每一面都被掷到. 题目描述 BuggyD loves to carry his favorite die around. Perhaps you wonde ...

Tex和LaTeX认识

TeX (文本排版系统) 利用TeX可以很容易地生成高质量的dvi文件,打印输出.特别是在处理复杂的数学公式时.利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本. LaTeX LaTeX( ...

spring jar包解读(转)

作者:http://www.cnblogs.com/leehongee/archive/2012/10/01/2709541.html spring.jar 是包含有完整发布模块的单个jar 包.但是 ...

Fabric Dev开发调试模式的搭建过程

在利用Fabric开发Chaincode的时候,调试Chaincode显得尤为不方便,因为Chaincode正常应该运行在Docker容器中,每次修改Chaincode后想要使其更改生效必须得对Cha ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值