
在Oracle中,等待事件有哪些常见的分类?常见等待事件有哪些?
等待事件的概念大概是从Oracle 7.0.12中引入的,刚引入的时候大约有100多个等待事件,在Oracle 8.0中这个数目增大到了大约150个,在Oracle 8i中大约有220个事件,在Oracle 9i中大约有400多个等待事件,在Oracle 10gR2中,大约有800多个等待事件,在Oracle 11gR2中约有1000多个等待事件。随着等待事件的逐步完善,也能够反映出对于问题的诊断粒度越来越细化。虽然不同版本会有不同数目的等待事件,但是这些等待事件都可以通过查询V$EVENT_NAME视图获得。
Oracle的等待事件主要可以分为两类:空闲(Idle)等待事件和非空闲(Non-Idle)等待事件。
(1)空闲等待事件指Oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。
(2)非空闲等待事件专门针对Oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的。
通过如下的SQL语句可以查询等待事件的类型:
1SELECT WAIT_CLASS#,
2 WAIT_CLASS_ID,
3 WAIT_CLASS,
4 COUNT(*) AS "COUNT"
5FROM V$EVENT_NAME
6GROUP BY WAIT_CLASS#,
7 WAIT_CLASS_ID,
8 WAIT_CLASS
9ORDER BY WAIT_CLASS#;
如下所示:
1SYS@orclasm > SELECT WAIT_CLASS#, WAIT_CLASS_ID, WAIT_CLASS, COUNT(*) AS "COUNT"
2 2 FROM V$EVENT_NAME GROUP BY WAIT_CLASS#, WAIT_CLASS_ID, WAIT_CLASS ORDER BY WAIT_CLASS#;
3WAIT_CLASS# WAIT_CLASS_ID WAIT_CLASS COUNT
4----------- ------------- --------------- ----------
5 0 1893977003 Other 745
6 1 4217450380 Application 17
7 2 3290255840 Configuration 24
8 3 4166625743 Administrative 55
9 4 3875070507 Concurrency 33
10 5 3386400367 Commit 2
11 6 2723168908 Idle 95
12 7 2000153315 Network 35
13 8 1740759767 User I/O 48
14 9 4108307767 System I/O 31
15 10 2396326234 Scheduler 8
16 11 3871361733 Cluster 50
17 12 644977587 Queueing 9
一些常见的、重要的等待事件如下所示:
(1)数据文件I/O相关的等待事件:
l db file sequential read
l db file scattered read
l db file parallel read
l direct path read
l direct path write
(2)控制文件I/O相关的等待事件:
l control file parallel write
l control file sequential read
l control file single write
(3)Redo日志文件I/O相关的等待事件:
l log file parallel write
l log file sync
l log file sequential read
l log file single write
l switch logfile command
l log file switch completion
l log file switch (clearing log file)
l log file switch (checkpoint incomplete)
l log switch/archive
l log file switch (archiving needed)
(4)高速缓存区I/O相关的等待事件:
l db file parallel write
l db file single write
l write complete waits
l free buffer waits
下面列出一些常见等待事件用以抛砖引玉,实际的数据库管理中需要掌握和了解的等待事件非常多,也比较复杂,只需要记住一些常见的面试知识点,其它的等待事件需要在工作中慢慢积累。
表 3-23 常见等待事件










除了上表中列举出来的等待事件还有很多其它常见的等待事件,这里就不再列举了,读者可以关注作者的微信公众号或博客,里面会有所有等待事件的详细介绍。
& 说明:
有关等待事件的更加详细的内容可以参考作者BLOG:http://blog.itpub.net/26736162/viewspace-2126079/、http://blog.itpub.net/26736162/viewspace-2125065/、http://blog.itpub.net/26736162/viewspace-2124417/
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

---------------优质麦课------------

详细内容可以添加麦老师微信或QQ私聊。

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。







