Oracle常见的等待事件(二)

原创 2016年08月29日 10:55:52

一、Direct path write

这个等待事件和direct path read正好相反,是会话将一些数据从PGA中直接写入到磁盘文件上,而不经过SGA。

这种情况通常发生在:

(1)使用临时表空间排序(内存不足)

(2)数据的直接加载(使用append方式加载数据)

(3)并行DML操作。

这个事件有三个参数:

Descriptor address:一个指针,指向当前会话正在等待的一个direct I/O。

First dba:descriptor address中最旧的一个I/O数据块地址。

BlocK cnt:descriptor address上下文中涉及的有效的buffer数量。

二、Enqueue

Enqueue这个词其实就是lock的另一种描述语。

当我们在WER报告中发现长时间的enqueue等待事件时,说明数据库中出现了阻塞和等待,可以关联AWR报告中的Enqueue  activity部分来确定是哪一种锁出现了长时间的等待。

这个等待事件有2个参数:

Name:Enqueue的名称和类型。

Mode:Enqueue的模式。

三、free buffer waits

当一个会话将数据块从磁盘读取到内存中时,它需要到内存中找到空闲的内存空间来存放这些数据块,当内存中没有空闲的空间时,就会产生这个等待;除此之外,还有一种情况就是会话在一致性读的时候,需要构造数据块在某个时刻的钱映像(image),此时需要申请内存来存放这些新构造的数据块,如果内存中无法找到这样的内存块,也不会发生这个等待事件。

当数据库中出现 比较严重的free buffer waits等待事件时,可能的原因是:

(1)data buffer太小,导致空闲空间不够

(2)内存中的脏数据太多,DBWR无法及时将这些脏数据写到磁盘中以释放空间。

这个等待事件包含2个参数:

File#:需要读取的数据块所在的数据文件的文件号。

Block#:需要读取的数据块块号。

四、Library cache lock

这个等待事件发生在不同用户在共享中由于并发操作同一个数据库对象导致的资源争用的时候,比如当一个用户在对一个表做DDL操作时,其他的用户如果要访问这张表,就会发生Library cache lock等待事件,它要一直等到DDL操作完成后,才能继续操作。

这个事件包含四个参数:

Handle address:被加载的对象的地址。

Lock address:锁的地址。

Mode:被加载对象的数据片段。

Namespace:被加载对象在v$db_object_cache视图中namespace名称。

五、Library cache pin

这个等待事件和library cache lock一样是发生在共享池中并发操作引起的事件。通常来讲,如果Oracle要对一些PL/SQL或者视图这样的对象做重新编译,需要将这些对象pin到共享池中。如果此时这个对象被其他的用户特有,就是产生一个library cache pin的等待。

这个等待事件也包含四个参数:

Handle address:被加载的对象的地址。

Lock address:锁的地址。

Mode:被加载对象的数据片段。

Namespace:被加载对象在v$db_object_cache视图中namespace名称。



相关文章推荐

Oracle常见等待事件说明

  • 2012年02月23日 17:47
  • 26KB
  • 下载

oracle常见等待事件

  • 2015年03月26日 09:34
  • 335KB
  • 下载

Oracle 常见的33个等待事件

Oracle 常见的33个等待事件 一. 等待事件的相关知识:   1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。 1). 空闲...
  • ycgjdb
  • ycgjdb
  • 2014年04月17日 14:42
  • 541

Oracle常见的33个等待事件

  • 2015年09月02日 15:13
  • 197KB
  • 下载

oracle常见的33个等待事件

  • 2013年07月26日 15:24
  • 165KB
  • 下载

Oracle常见的等待事件说明(上)

Oracle数据库系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境,因此,它广受大数据圈相关人士的青睐。但是,在使用过程中,偶尔会遇到一些等待事件,这是为什么呢?大圣众包威客平台为你一...

Oracle_常见的33个等待事件

  • 2013年04月17日 14:11
  • 210KB
  • 下载

ORACLE常见的等待事件

一. 常见的等待事件:   1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。 1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据...
  • RuleV5
  • RuleV5
  • 2011年12月15日 20:37
  • 2150

Oracle 常见的33个等待事件

  Oracle 常见的33个等待事件   一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORAC...
  • sopost
  • sopost
  • 2011年02月06日 01:05
  • 446

Oracle 常见的33个等待事件【转自dave偶像大神】

一. 等待事件的相关知识:   1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。 1). 空闲等待事件指ORACLE正等待某种工作,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle常见的等待事件(二)
举报原因:
原因补充:

(最多只允许输入30个字)