Exadata等待事件
一、 用户IO类别中的Exadata等待事件
1、 cell smart table scan
cell smart table scan事件是Oracle用来计算卸载到存储节点上的全表扫描所花费的时间。
参数:
P1-------节点哈希号
P2-------未使用
P3-------未使用
Obj#------正在扫描的表的对象号
注意:节点哈希号(cell hasvalue)可以在v$cell视图中找到。这个视图只有两列,即CELL_PATH和CELL_HASHVAL,CELL_PATH列中实际包含了存储节点的IP地址。
2、 cell smart index scan
当所有快速全扫描(fast full index scan)执行卸载操作时,cell smart index scan事件开始记录时间。这个事件与cell smart table scan类似,除了扫描的对象是索引以外,它还替代了direct path read 事件,直接返回数据到请求进程的PGA中,而不是数据库buffer cache中。
参数:
P1-------节点哈希号
P2------未使用
P3------未使用
Obj#------真正扫描的索引的对象号
3、 cell single block physical read
这个事件相当于非Exadata平台上使用的db file sequential read。单块读是最常用的索引访问路径(包括读取索引块以及索引查找时通过rowid读取表数据块),它也可以使用在很多不同的读取单个数据块的操作中。
参数:
P1------节点哈希号
P2------磁盘哈希号
P3------读取操作返回的总字节数(当块为8KB大小时,此值总是8192)
Obj#------正在读取的对象的对象号
4、 cell multiblock physical read
相当于之前命名有点歧义的db file scattered read事件,在非Exadata平台上,db file scattered read事件说明数据库向操作系统发出了一个连续的多块读请求,Oracle数据块11gR2依然沿用该事件命名。
Exadata平台上的cell 木拉提blockphysical read 用于当表的大小比串行直接路径读取的阀值小时而执行的串行全表扫描操作。即这个事件经常用于相对较小的表的全表扫描上,它同样用于没有执行直接路径读取的索引快速全扫描上。
参数:
P1------节点哈希号
P2------磁盘哈希号
P3------读取操作返回的总字节数
Obj#------正在读取的对象的对象号
5、 cell list of blocks physical read
这个事件用来替代db file parallel read事件,该等待事件与并行查询或者并行DML毫无相干。
该事件用于非相邻块的多块读,此操作使用异步IO更有效,异步IO在Exadata上是默认开启的。该事件最常见的触发操作是:Index Range Scan、Index Unique Scan和Table Access By Index Rowid,产生该事件最常见的原因是索引预读取。
参数:
P1------节点哈希号
P2------磁盘哈希号
P3------读取的块数
Obj#------正在读取的对象的对象号
6、 cell smart file creation
这个事件发生在创建一个表空间或者手动向表空间中添加数据文件时,在DML操作过程中数据文件自动扩展时也可能发生这个事件。
参数:
P1------节点哈希号
P2------未使用
P3------未使用
7、 cell statistics gather
这个事件记录了花费在读取不同的V$和X$表上的时间,虽然该事件被分组到用户IO类别中,但是它并没有涉及读取或写入磁盘的操作。常见的有:V$CELL、V$CELL_THREAD_HISTORY(X$KCFISOSSN)、V$CELL_REQUEST_TOTALS(X$KCFISOSST)以及其他几个属于同一家族的X$表。
参数:
P1------节点哈希号(永远是0)
P2------未使用
P3------未使用
二、 系统IO类别中的Exadata等待事件
1、 cell smart incremental backup
这个事件用于计算等到RMAN做1级增量备份的时间。Exadata通过将很多处理卸载到存储层来优化增量备份。
参数:
P1------节点哈希号
P2------未使用
P3------未使用
Obj#------未使用
注意:很多等待事件都包括obj#字段,甚至一些并不具体涉及一个单独的对象的事件。在某些情况下,该值被某个事件所设置,当等待结束时并没有及时清除,导致为下一个等待事件留下无意义的值。
2、 cell smart restore from backup
这个事件用于计算等待RMAN还原(restore)的时间,Exadata通过将处理卸载到存储节点上来优化RMAN恢复操作。
参数:
P1------节点哈希号
P2------未使用
P3------未使用
3、 cell manager closing cell
这是一个关闭相关的事件,这个事件在V$session_wait视图的P1列包含了节点哈希号,P2和P3未使用。
4、 cell manager discovering disks
这是一个启动相关的事件,这个事件在V$session_wait视图的P1列包含了节点哈希号,P2和P3未使用。
5、 cell manager opening cell
这是一个启动相关的事件,这个事件在V$session_wait视图的P1列包含了节点哈希号,P2和P3未使用。
三、 其他类别和空闲类别中的Exadata等待事件
1、 cell smart flash unkeep
这个事件记录了Oracle将数据库刷出Exadata只能闪存的时间。如果一张表的存储子句指定它被缓存在Exadata智能闪存中,当这张表被截断(truncate)或者删除(drop)时会发生该事件。
参数:
P1------节点哈希号
P2------未使用
P3------未使用
2、 cell manager cancel work request
这个事件的信息并不丰富,v$session_wait视图中的三个参数(P1,P2,P3)都没有使用。
3、 cell work online completion
它看起来是一个起点事件,v$session_wait视图中的P1列包含了此事件的节点哈希号,P2列和P3列没有使用。
4、 cell work retry
v$session_wait视图中的P1列包含了此事件的节点哈希号,P2列和P3列没有使用
5、 cell work idle
在这个空闲事件中,v$session_wait视图中的P1列、P2列和P3列都没有使用。
四、 旧事件
1、 direct path read
Oracle使用直接路径读取将数据直接读入PGA内存(而不是读入buffercache),他们是Exadata卸载不可分割的一部分。因为只有当使用直接路径读取机制时,SQL处理才可以被卸载到存储节点上。当查询被卸载时,direct path read等待时间实际上被cell smart table scan和cell smartindex scan等待事件所替代。
参数:
P1------文件号
P2------块的首地址(文件内偏移量)
P3------读取的块数量
Obj#------正在扫描的表的对象号
2、 enq:KO---fast object checkpoint
该事件本质上是一个检查点事件,当一个会话等待某个对象的所有脏块刷出buffer cache时,该事件就会出现。
参数:
P1------名称/模式
P2------未使用
P3------未使用
Obj#------正在做检查点的对象的对象号
3、 reliable message
这个事件用于记录前台进程和后台进程通信的时间,如检查点进程(FKPT)。这个事件和enq:KO---fast object checkpoint事件有着密切的关系。是enq:KO---fastobject checkpoint事件的前导事件,进程间通信是通过一个通信信道来完成的,而不是常规的信号机制。
参数:
P1------信道上下文
P2------信道句柄
P3------广播消息
Obj#------重要对象的对象号(并不总是被赋值)
五、 资源管理事件
1、 resmgr:cpu quantum
这个事件用于记录由于高优先级工作的竞争,数据库资源管理器(DBRM)强加给会话的强制性空闲时间。
参数:
P1------位置(这是一个数字类型,指的是一个Oracle代码中的位置(函数))
P2------使用者组ID
P3------未使用
Obj#------NA
2、 resmgr:pq queued
这个事件用于记录在并行查询队列里的等待时间。
参数:
P1------位置(这是一个数字类型,指的是一个Oracle代码中的位置(函数))
P2------未使用
P3------未使用
Obj#------NA
以上内容摘录自《深入理解OraceExadata》