OWI(Oracle Wait Interface)方法论介绍

何谓OWI?

    Oracle 在执行某项工作过程中,没有如愿获得需要的资源时,将一直等待与相应资源对应的事件,直到解除对资源的占有为止。假如,某进程欲修改其他进程已修改的特定行(row),需要等到获取之前进程已拥有的对事务(transaction)资源的锁(TX 锁)为止。进程在系统上记录名为enq: TX-row lock contention 的事等待件。我们可以对此等待现象进行观察,进而推断进程发生了何种问题。综上所述,记录和观察进程所经历的等待现象的功能和界面及方法论,统称为OWI,也就是Oracle Wait Interface。最初Oracle 7.0.1 中对OWI进行过介绍,这时的等待事件总共为104 个。但是Oracle 不断改善代码,并细分了事件,因而事件数量在Oracle 8.0 中是140 个,Oracle 8i 中是220 个,Oracle 9i 中则是400 个。而今,Oracle 10g 中则提供了800 个以上的事件。Oracle中所使用的等待事件随着版本的提升一路攀升。这意味着Oracle 正向准确报告性能问题的方向发展,所以对OWI 的应用也会逐步提升。


进程没有获得特定资源而等待时称为“等待XXX事件event)”。如果,将一个块(block)从磁盘物理读取的进程发出请求后,“等待db file sequential read 事件”,直到对实际请求的块的I/O 请求结束为止。举一个其他例子。某进程欲改变其他进程正在修改的缓冲区时,需要等待“buffer busy waits 事件”,直到其他进程结束。事件或等待事件可定义为直到进程获得特定资源为止等待发生的“事件”。

等待事件通过P1、P2、P3 这三个参数表现当前等待的资源。等待事件的P1、P2、P3 值可以通过V$SESSION_WAIT、V$SESSION 视图等动态(dynamic)视图或SQL Trace 文件观察。例如在db file sequential read 事件中,P1=file#、P2=block#、P3=request block count。利用P1 和P2 两个值可以确认对哪个段(segment)的哪个块发生I/O 等待。各事件的P1、P2、P3 的意义都不尽相同,可通过V$EVENT_NAME 视图进一步确认。Oracle 世界里非常广泛地使用“资源(resource)”这个词,与一般我们所理解的“资源不同”。OWI 观点上的“资源”,只限于事件的P1、P2、P3 三个参数表达的范围。假设db file sequential read事件的P1=file#、P2=block#、P3=request block count,事件所表示的资源就是“特定数据文件的特定块”。enq: TX-row lock contention 事件的P1=name|mode、P2=usn<< 16||slot、P3=sequence,它所表示的资源是“以usn、slot、sequence确定的对事物处理的锁(lock)”。latch free 事件的P1=latch address#、P2=latch#、P3=tries,此事件表现的资源就是“以latch address 形式表现的锁存器(latch)对象”。

Oracle 利用等待次数、超时次数、等待时间三个值表示等待现象,因此可以表述如下:进程在特定时间内总共等待10000 次latch: library cache 事件,其中发生五次超时,其总等待时间是10 秒。从用户角度看,等待次数、超时次数、等待时间中,感觉最为有用的是“等待时间”。特别是锁存器等资源,较频繁地试图获得锁存器,因此以等待次数判断争用(contention)是没有任何意义的,通过等待时间可最为准确地分析争用程度。

特定进程在执行某工作过程中,实际工作的时间(service time)是100秒,而与此时间相反,此工作执行期间内光是等待事件的时间就是50 秒,用户实际感受到的响应时间为100+50=150(秒)。也就是:响应时间(Response Time)= 工作时间(Service Time)+等待时间(Wait Time)只要降低工作时间和等待时间,响应时间自然地随之降低,并增加了用户满意度。有些问题只要降低工作时间,等待时间自然也会降低。但是有些时候,不可能降低工作时间,这时只有降低等待时间一种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值