一直想写一篇关于oracle database等待事件的文档,从11年考ocm开始前就有这打算,到了13年开始,也并没有实际的落实一下。12年给学生讲课时也没有好好把等待事件通篇的梳理。这个预想中的工程不能等着一起全部投入精力来完成了,一点一点的凑着把等待事件完成吧。不知道个人能持续到什么时候,此为第一篇。
二 操作环境
OS info
lsb_release -a
uname -a
DB info
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
sqlplus / as sysdba <
set lines 150
COL PRODUCT FORMAT A55
COL VERSION FORMAT A15
COL STATUS FORMAT A15
SELECT * FROM PRODUCT_COMPONENT_VERSION;
col value for a50
set pages 50
select * from nls_database_parameters;
archive log list;
EOF
other
三 过程设计
按照Oracle® Database Reference 11g Release 2 (11.2) Part Number E17110-05 C Oracle Wait Events 官档的大纲内容进行整理。纲要内容如下:
Classes of Wait Events
Descriptions of Common Wait Event Parameters
Descriptions of Wait Events
关于等待事件的信息可以在三个动态性能视图中显示出来:
v$session_wait sessions正在进行或者已经完成的events
v$system_event 所有每个sessions已经完成的某个等待事件的总共等待次数 (翻不明白了,原文这样的:displays the total number of times all the sessions have waited for the events in that view.)
v$session_event 跟v$system_event相似,但是只显示当前session的所有每一个等待事件的总共等待次数。
下面的sql语句列出所有wait events 及其wait class .
SQL> SELECT name, wait_class FROM V$EVENT_NAME ORDER BY name;
此篇文档先介绍Classes of Wait Events .
四 详细内容
Oracle 11.2 数据库提供如下 wait class
1. Administrative
此类等待事件是由于DBA的管理命令引起的,这些命令要求用户处于等待状态,比如,重建索引。【Waits resulting from DBA
commands that cause users to wait (for example, an index rebuild)】
2. Application
此类等待事件是由于用户应用程序的代码引起的(比如:锁等待)【Waits resulting from user application code (for example,
lock waits caused by row level locking or explicit lock commands)】
3. Cluster
此类等待事件和真正应用群集RAC的资源有关。(比如:gc cr block busy等待事件)【Waits related to Real Application Cluster
resources (for example, global cache resources such as 'gc cr block busy'】
4. Commit
此类等待事件只包含一种等待事件--在执行了一个commit命令后,等待一个重做日志写确认(也就是log file sync)【This wait class
only comprises one wait event - wait for redo log write confirmation after a commit (that is, 'log file sync')】
5. Concurrency
此类等待事件是由内部数据库资源引起的,比如闩锁。【Waits for internal database resources (for example, latches)】
6. Configuration
此类等待事件是由数据库或实例的不当配置造成的,比如,重做日志文件尺寸太小,共享池的大小等。【Waits caused by inadequate
configuration of database or instance resources (for example, undersized log file sizes, shared pool size)】
7. Idle
此类等待事件意味着会话不活跃,等待工作。比如,sql * net messages from client。【Waits that signify the session is inactive,waiting for work (for example, 'SQL*Net message from client')】
8. Network
和网络环境相关的一些等待事件,比如sql* net more data to dblink。【Waits related to network messaging (for example,
'SQL*Net more data to dblink')】
9. Other
此类等待事件通常比较少见。【Waits which should not typically occur on a system (for example,
'wait for EMON to spawn')】
10.Scheduler
Resource Manager related waits (for example, 'resmgr: become active')
11.System I/O
此类等待事件通过是由后台进程的I/O操作引起的,比如DBWR等待,db file paralle write。【Waits for background process IO
(for example, DBWR wait for 'db file parallel write')】
12.User I/O
此类等待事件通常是由用户I/O操作引起的,比如db file sequential read。【Waits for user IO (for example 'db file sequential read')】
13.Queue (较引文中官档添加的等待事件类)
在 pipelined环境下明显延迟的等待事件,这些花销大的时间可以显著表明低效率或者pipleline的其他问题。像streams,parallel queries或才dbms_piple包等。
【Contains events that signify delays in obtaining additional data in a pipelined environment. The time spent on these wait events indicates inefficiency or other problems in the pipeline. It affects features such as Oracle Streams, parallel queries, or DBMS_PIPE PL/SQL packages.】
五 个人总结
为避免重复发明轮子,所以引用了其他人博客中的内容。改变了些内容,以自己的理解的方式展示出来。个人认为专业术语还是用原汗原味的好。(另一个原因是本人翻译水平实在有限)
文档中多出一的wait class为Queue,具体还不明白实际发生的情况,这里注明。
六 资料参考引用
Oracle® Database Reference 11g Release 2 (11.2) Part Number E17110-05
http://blog.csdn.net/wyzxg/article/details/4827434
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11780477/viewspace-753213/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11780477/viewspace-753213/