#等待事件

在YashanDB中,V$SYSTEM_EVENT/DV$SYSTEM_EVENT/V$SESSION_WAIT等视图显示了系统当前的等待事件信息,通过这些视图可以查看每个session正在等待的活动,并据此分析数据库的性能瓶颈点。

本文将列示说明YashanDB中所有的等待事件,以及触发等待事件的条件。

首字母索引

a b c d e f g h i k l m q r s t u w x

# alloc execution quota

说明:DML进行执行资源配额的预申请。

触发条件:DML准备阶段,进行必要的资源配额申请。

# assm block range formating

说明:块区间初始化等待。

触发条件:并发插入数据,初始化块区间,两个session分配到同一个区间,后分配到的session要等待正在初始化的session初始化结束。

# assm block range queue wait

说明:初始化块区间的队列等待。

触发条件:并发插入数据,触发块区间初始化,多个线程同时在同一个segment的不同块区间上初始化,队列占满,后发起的线程要等待其他线程完成初始化,空出队列位置之后,再将初始化信息登记到队列上。

# audit policy

说明:约束审计策略并发控制。

触发条件:

  1. 删除角色,且该角色在审计策略中被使用。
  2. 该角色赋权限,且该角色在审计策略中被使用。
  3. 取消角色权限,且该角色在审计策略中被使用。
  4. 删除策略。
  5. 策略使能。
  6. 取消策略使能。
  7. 更改策略。
  8. 删除对象时,且该对象被审计。
  9. 删除用户,且该用户被审计。

# axl recv

说明:共享集群跨服务器执行交互等待应答事件。

触发条件:共享集群执行跨服务器查询,例如GV视图,服务器之间互发控制消息时会出现等待。

# btree cache invalid

说明:共享集群等待事件,并发失效索引缓存等待。

触发条件:共享集群在失效索引热页缓存时由于加不上锁而出现的等待。

# buffer busy wait

说明:block锁冲突等待。

触发条件:并发修改同一个block时等待。

# check xa end

说明:等待分布式事务完成第二阶段提交。

触发条件:正常场景不会出现,可能存在异常(如:CN或者相关的DN网络异常,DN故障等)。

# checkpoint completed

说明:checkpoint等待。

触发条件:checkpoint未完成时等待,例如shutdown或者通过SQL触发的checkpoint。

# columnar ac build wait

说明:AC数据生成等待。

触发条件:当前表有未完成的AC数据生成任务时等待。

# columnar data block extending

说明:数据页面扩展等待。

触发条件:TAC表扩展数据页面时等待。

# columnar data block filling

说明:数据页面初始化等待。

触发条件:数据页面初始化等待,对新增列数据页面初始化时发现其他会话正在初始化时触发的等待。

# columnar meta block extending

说明:元数据页面扩展等待。

触发条件:TAC扩展元数据页面时等待。

# columnar meta block xact wait

说明:元数据block事务管理单元申请等待。

触发条件:block上没有足够空间申请事务管理单元时等待。

# columnar xfmr wait

说明:LSC可变数据转换等待。

触发条件:当前表有未完成的转换任务时等待。

# connecting remote node

说明:本节点尝试与其他节点建立连接。

触发条件:执行中,如果当次执行涉及没有建立连接的节点,则会先进行建连,触发该等待。

# ctrl file

说明:控制文件锁冲突等待。

触发条件:并发修改控制文件时等待。

# db file parallel write

说明:block刷盘等待。

触发条件:database writer线程进行block刷盘时等待。

# db file scattered read

说明:block读等待。

触发条件:访问block触发block读时等待。

# db file sequential read

说明:block预读等待。

触发条件:访问block触发block预读时等待。

# deadlock detection wait

说明:死锁检测进行时等待。

触发条件:后台线程定时触发死锁检测时等待。

# dstb alter session

说明:CN等待其他节点完成alter session操作。

触发条件:执行分布式 alter session。

# dstb alter system

说明:CN等待其他节点完成alter system操作。

触发条件:执行分布式 alter system。

# dstb commit

说明:CN等待涉及事务的DN完成commit。

触发条件:该次事务只涉及一个DN时,执行commit触发该等待。

# dstb execute dcl

说明:CN等待其他节点完成DDL相关的事务操作。

触发条件:执行分布式DDL。

# dstb execute ddl

说明:CN等待其他节点执行DDL命令。

触发条件:执行分布式DDL。

# dstb lob data request

说明:分布式节点等待请求的LOB数据发送完毕。

触发条件:某个节点需要LOB数据时,向另一个节点发送LOB数据请求后触发等待。

# dstb release px res

说明:CN等待其他节点资源释放结束。

触发条件:分布式执行中并行执行资源申请失败后,CN进行全局资源释放时等待。

# dstb release savepoint

说明:CN等待其他节点完成savepoint的删除。

触发条件:执行release savepoint语句。

# dstb rollback

说明:CN等待其他节点完成rollback。

触发条件:分布式下进行各种rollback操作就会触发。

# dstb savepoint

说明:CN等待其他节点完成savepoint。

触发条件:执行savepoint语句。

# exclusive lock wait

说明:排他锁冲突等待。

触发条件:事务A对表加共享锁,事务B对相同表加排他锁时等待。

# extending data file

说明:扩展数据文件等待。

触发条件:当触发数据文件扩展或对数据文件RESIZE需要进行扩展时。

# free buffer wait

说明:buffer淘汰等待。

触发条件:访问block触发buffer淘汰时等待。

# gc boc wait

说明:共享集群等待事件,SCN同步等待。

触发条件:同步等待SCN传输。

# gc buffer busy acquire

说明:共享集群等待事件,请求的buffer在共享集群中处于全局busy状态,Buffer正在或已经被本实例的其他session从远程实例请求。

触发条件:Buffer正在或已经被本实例的其他session从远程实例请求。

# gc buffer busy release

说明:共享集群等待事件,请求的buffer在共享集群中处于全局busy状态,Buffer已被其他session持有共享锁或排它锁。

触发条件:Buffer已被其他session持有共享锁或排它锁。

# gc cr block 2 way

说明:共享集群等待事件,请求的一致性读页面是从共享集群中的另一个实例传输的,并且请求涉及2个网络跳。

触发条件:请求涉及2个网络跳。

# gc cr block 3 way

说明:共享集群等待事件,请求的一致性读页面是从共享集群中的另一个实例传输的,并且请求涉及3个网络跳。

触发条件:请求涉及3个网络跳。

# gc cr block grant

说明:共享集群等待事件,请求的一致性读页面,本实例授权从磁盘加载。

触发条件:本实例授权从磁盘加载。

# gc cr block grant 2 way

说明:共享集群等待事件,请求的一致性读页面,其他实例授权从磁盘加载。

触发条件:其他实例授权从磁盘加载。

# gc cr request

说明:共享集群等待事件,请求一致性读页面。

触发条件:请求一致性读页面。

# gc current block 2 way

说明:共享集群等待事件,请求的最新页面是从共享集群中的另一个实例传输过来的,并且请求中涉及到2个网络跳。

触发条件:请求中涉及到2个网络跳。

# gc current block 3 way

说明:共享集群等待事件,请求的最新页面是从共享集群中的另一个实例传输过来的,并且请求中涉及到3个网络跳。

触发条件:请求中涉及到3个网络跳。

# gc current block busy

说明:共享集群等待事件,实例在发送或失效页面进行访问页面时,该页面被该实例的其他session持有着。

触发条件:访问页面时,页面被该实例的其他session持有着。

# gc current block request

说明:共享集群等待事件,请求最新页面。

触发条件:请求最新页面。

# gc current grant

说明:共享集群等待事件,请求的最新页面,本实例授权从磁盘加载。

触发条件:本实例授权从磁盘加载。

# gc current grant 2 way

说明:共享集群等待事件,请求的最新页面,其他实例授权从磁盘加载。

触发条件:其他实例授权从磁盘加载。

# gc lwlock S

说明:共享集群等待事件,请求GLS共享锁。

触发条件:请求GLS共享锁。

# gc lwlock X

说明:共享集群等待事件,请求GLS排它锁。

触发条件:请求GLS排它锁。

# gc mutex

说明:共享集群等待事件,请求mutex锁。

触发条件:请求mutex锁。

# gc recycle lock

说明:共享集群等待事件,GLS锁内存回收。

触发条件:当本地锁内存达到上限后申请分配内存。

# gc upgrade block 2 way

说明:共享集群等待事件,请求页面锁升级,要求其他实例失效页面,并且请求中涉及到2个网络跳。

触发条件:请求中涉及到2个网络跳。

# gc upgrade block 3 way

说明:共享集群等待事件,请求页面锁升级,要求其他实例失效页面,并且请求中涉及到3个网络跳。

触发条件:请求中涉及到3个网络跳。

# gc upgrade grant

说明:共享集群等待事件,无其他实例持有有效页面。

触发条件:请求页面锁升级。

# gc upgrade request

说明:共享集群等待事件,请求页面锁升级。

触发条件:请求页面锁升级。

# get remote xact info

说明:共享集群等待事件,获取远端事务信息。

触发条件:查询事务信息。

# get remote xact status

说明:共享集群等待事件,获取远端事务状态。

触发条件:查询事务状态。

# heap segment extending

说明:heap扩展等待。

触发条件:INSERT时触发heap扩展时等待。

# index block split

说明:查找key时,block正在结构变更。

触发条件:查找过程中,发现其他会话正在变更block结构触发的等待。

# index contention

说明:索引结构变化冲突等待。

触发条件:需要插入key时,其他会话正在变更block结构触发的等待。

# interval part extend

说明:共享集群等待事件,并发扩展表分区等待。

触发条件:共享集群对同一个表进行interval分区扩展时触发。

# key xact wait

说明:索引key锁冲突等待。

触发条件:唯一索引,INSERT时,发现有重复的值,而那个值正在被其他事务操作,没有提交。

# log buffer space

说明:申请redo缓冲区空间等待。

触发条件:会话将redo写入redo缓冲区,发现redo缓冲区空间不足时等待。

# log file parallel write

说明:redo文件刷盘等待。

触发条件:redo数据从redo缓冲区刷盘时等待。

# log file sequential read

说明:redo发送时读取redo/archive log等待。

触发条件:redo发送线程读取redo数据时等待。

# log file single write

说明:redo文件头刷盘等待。

触发条件:redo文件头更新时等待,例如增加redo文件或切换redo文件。

# log file switch completion

说明:redo切换等待。

触发条件:redo切换时等待。

# log file sync

说明:redo日志commit等待。

触发条件:事务提交需要将该事务的redo日志落盘,redo日志刷盘时等待。

# log switch/archive

说明:alter system archive等待。

触发条件:执行alter system archive命令,归档没有生成时等待。

# mcol wait dc load

说明:LSC可变数据等待元数据缓存加载。

触发条件:当前操作的可变数据元数据缓存没有加载上来。

# profile create

说明:共享集群等待事件,等待创建profile。

触发条件:并发创建profile。

# quorum standby sync

说明:QUORUM_SYNC_STANDBYS参数对应的同步备个数发生变化时等待。

触发条件:最大保护模式,QUORUM_SYNC_STANDBYS为默认值的情况下,增加备库链路时,可能使同步备个数增加,当同步备个数不满足新值时等待。

# read by other session

说明:访问的block正在被其他会话加载。

触发条件:并发访问一个正在被加载的block。

# recovery read

说明:redo回放时读取redo/archive log等待。

触发条件:recovery从redo/archive log读取日志时等待。

# redo remote send

说明:redo发送等待。

触发条件:向备库发送redo数据时等待。

# redo remote sync complete

说明:redo同步到备库等待。

触发条件:事务提交需要redo同步发送到备库,未收到备库刷盘通知时等待。

# remote dml prepare

说明:当前节点等待其他节点完成DML的prepare阶段。

触发条件:进行多节点DML执行就会触发。

# remote dml start

说明:当前节点等待其他节点完成DML。

触发条件:多节点查询会触发。

# remote xact wait

说明:共享集群等待事件,两实例行锁冲突等待。

触发条件:实例1事务A加行锁不提交,实例2事务B加同一行的锁时等待。

# role create

说明:共享集群等待事件,等待创建role。

触发条件:并发创建role。

# row xact wait

说明:行锁冲突等待。

触发条件:事务A加行锁不提交,事务B加同一行的锁时等待。

# scol bulkload busy wait

说明:稳态列式存储批量导入忙等待。

触发条件:稳态列式存储区批量导入缓冲区满触发等待。

# scol sync busy wait

说明:稳态列式存储同步忙等待。

触发条件:稳态列式存储数据同步慢触发等待。

# segment create

说明:共享集群等待事件,等待创建segment。

触发条件:插入数据触发创建对象segment,后触发的线程要等前一个线程创建结束后才能继续插入数据。

# set global stats prefs

说明:共享集群下设置全局统计信息选项,等待获取全局互斥锁。

# setting max protection

说明:设置最大保护模式时,等待redo同步到同步备。

# shared lock wait

说明:共享锁冲突等待。

触发条件:事务A对表加排他锁,事务B对相同表加共享锁时等待。

# slice exclusive lock wait

说明:slice排他锁冲突等待。

触发条件:事务A对表的slice x加共享锁,事务B对相同表的相同slice加排他锁时等待。

# slice shared lock wait

说明:slice共享锁冲突等待。

触发条件:事务A对表的slice x加排他锁,事务B对相同表的相同slice加共享锁时等待。

# space extent

说明:共享集群等待事件,等待分配extent。

触发条件:在同一个表空间上并发分配extent时触发。

# SQL*Net message from client

说明:数据库等待接收客户度消息。

触发条件:数据库认证用户信息后,客户端发起业务请求前等待。

# SQL*Net message to client

说明:数据库向客户端回应消息。

触发条件:等待数据库向客户端发送处理结果。

# SQL*Net more data from client

说明:数据库等待接收客户端更多数据。

触发条件:数据库接收数据包,一次没收完,需等待客户端发送剩下的包。

# SQL*Net more data to client

说明:数据库向客户端发送数据。

触发条件:数据库发送数据包,数据超出一个包大小,等待其中一部分包的发送undo segment extending。

# stats channel receive data

说明:分布式下CN通过channel接收DN上的统计信息。

触发条件:分布式下统计信息收集时触发。

# swapping in vm block

说明:将SWAP表空间上的block换入到内存。

触发条件:VM需要打开已经换出到磁盘的block。

# swapping out vm block

说明:将内存里的block换出到SWAP表空间。

触发条件:当VM需要使用内存里的block,但是内存不足时,会将暂时不用的block换出。

# tablespace ctrl

说明:tablespace ctrl锁冲突等待。

触发条件:并发修改tablespace ctrl时等待。

# tablespace manager

说明:共享集群等待事件。

触发条件:并行执行队列满,出队和入队都需要等待。

# undo segment extending

说明:undo扩展等待。

触发条件:undo segment触发space扩展等待。

# user create

说明:共享集群等待事件,等待创建用户。

触发条件:并发创建用户。

# wait distributed result

说明:CN等待各个节点回应的时间。

触发条件:涉及分布式执行都会统计该时间。

# wait remote cmd

说明:等待远端会话的执行命令。

触发条件:远端会话和本节点建连后,本节点没有正在执行的命令时,会触发该等待。

# wait remote result

说明:等待远端节点回应。

触发条件:向远端节点发送部分执行命令时,会触发该等待。

# xa commit

说明:CN等待各节点完成两阶段提交的commit阶段完成。

触发条件:分布式下涉及多个DN的事务提交。

# xa prepare

说明:CN等待各节点完成两阶段提交的prepare阶段完成。

触发条件:分布式下涉及多个DN的事务提交。

# xslot busy wait

说明:block事务管理单元申请等待。

触发条件:block上没有足够空间申请事务管理单元时等待。

pdf-btn 下载文档
copy-btn 复制链接