首页 > Linux操作系统 > Linux操作系统 > Oracle常见等待事件
一、Oracle等待事件相关知识
1.1、等待事件分为2类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。
空闲等待事件指Oracle正等待某种工作;非空闲等待事件专门针对oracle的活动,指数据库任务或应用运行过程中发生的等待。
1.2、相关视图
v$session
v$session_wait:记录活动session的等待情况
v$session_wait_history:记录活动session的最近10次等待
v$active_session_history:记录活动session的历史等待信息,每秒采样一次,内容记录在内存中
v$system_event:数据库启动以来所有等待事件的汇总信息
v$event_name:记录等待事件信息
二、常见等待事件
1、Buffer busy waits
2、Buffer latch
3、Control file parallel write
4、Control file sequential read
5、Db file parallel read
这个事件发生在数据库恢复时,当有一些数据块需要恢复时,oracle会以并行的方式把它们从数据文件读入到内存中进行恢复操作。与并行操作(并行查询、并行DML)无关
6、Db file parallel write
7、Db file scattered read
8、Db file sequential read
9、Db file single write
通常只发生在oracle更新数据文件头信息时。
10、Direct path read
11、Direct path write
12、Enqueue
lock的另一种说法,说明数据库出现了阻塞和等待
SELECT CHR(TO_CHAR(BITAND(p1, -16777216)) / 16777215) ||
CHR(TO_CHAR(BITAND(p1, 16711680)) / 65535) "Lock",
TO_CHAR(BITAND(p1, 65535)) "Mode"
FROM v$session_wait
WHERE event = 'enqueue';
13、Free buffer waits
当一个会话将数据块从磁盘读到内存中时,需要到内存中找到空闲的内存空间来存放这些数据块,当内存中没有空闲空间时就会产生这个等待。
做一致性读时,需要构造数据块在某个时刻的前映像,需要申请内存来存放这些新构造的数据块,若无空闲空间也会产生这个等待。
产生原因:buffer cache太小;内存中脏数据太多,DBWR无法及时将这些脏数据写入磁盘来释放空间
14、Library cache lock
15、Library cache pin
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25725504/viewspace-731943/ ,如需转载,请注明出处,否则将追究法律责任。