V$EVENT_NAME¶
提供系统所有等待事件列表及相关信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| EVENT_ID | INT | 等待事件号 |
| EVENT_NAME | TEXT | 等待事件名 |
| PARAMETER1 | TEXT | 等待事件第一个参数描述 |
| PARAMETER2 | TEXT | 等待事件第二个参数描述 |
| PARAMETER3 | TEXT | 等待事件第三个参数描述 |
| PARAMETER4 | TEXT | 等待事件第四个参数描述 |
| WAIT_CLASS_ID | SMALLINT | 等待事件类别号 |
| WAIT_CLASS | TEXT | 等待事件类别名 |
| DESCRIPTION | TEXT | 等待事件描述 |
目前神通数据库主要等待事件:
| 等待事件号 | 等待事件名 | 等待事件第一个参数描述 | 等待事件第二个参数描述 | 等待事件第三个参数描述 | 等待事件第四个参数描述 | 等待事件类别号 | 等待事件类别名 | 等待事件描述 |
|---|---|---|---|---|---|---|---|---|
| 1 | BufHashEntryLockWait | Hash Index | null | null | null | 4 | Concurrency | Buffer入口锁等待。(目前未使用) |
| 2 | BufLatchRWLockWait | File Id | Page Id | Latch Mode | null | 4 | Concurrency | Buffer latch时加latch的的等待。(目前未使用) |
| 3 | BufAllocRWLockWait | File Id | Page Id | Latch Mode | null | 4 | Concurrency | Buffer latch时加latch的的等待。(目前未使用) |
| 4 | BufDropRWLockWait | File Id | Page Id | Latch Mode | null | 4 | Concurrency | Buffer drop时的等待,这个等待可能包括需要drop的页面当前不满足drop条件、buffer上的rwlock等待以及回刷的I/O等待。(目前未使用) |
| 5 | BufSyncFlushRWLockWait | File Id | Page Id | Latch Mode | null | 4 | Concurrency | (目前未使用) |
| 6 | BufFlushingWait | File Id | Seg Id | null | null | 4 | Concurrency | 等待回刷线程回刷全局数据页面缓冲区里的赃页面 |
| 7 | BufRefreshingDirtyPageList | Thread Id | null | null | null | 4 | Concurrency | 等待赃页链表的状态刷新到特定状态 |
| 8 | BufSyncPhysicalReadWait | File Id | Page Id | Seg Id | null | 8 | User I/O | 等待从磁盘中读取一个数据页面到内存里 |
| 9 | BufAllocPageWait | null | null | null | null | 2 | Configuration | 等待从全局数据页面缓冲区里获取一个空闲的缓存 |
| 10 | BufPrefetchRangeIOWait | Rsc Id | PageIdPart | Seg Id | Rsc Mode | 8 | User I/O | 数据页面正在从磁盘被异步读取到内存,等待该异步读取完成。 |
| 11 | BufDPWriteIOWait | null | null | null | null | 8 | User I/O | 同步回刷时的等待,这个等待可能包括需要回刷页面当前不满足回刷条件、buffer上的rwlock等待以及回刷的I/O等待。 |
| 12 | BufSingleFlushIOWait | File Id | Page Id | null | null | 8 | User I/O | 赃页回刷线程,正在等待操作系统将一个赃数据页面从内存回刷到磁盘里 |
| 13 | BufSyncFlushIOWait | File Id | Page Id | null | null | 8 | User I/O | 等待将某个页面回刷到磁盘里,一般是用户线程在等待 |
| 14 | GroupFlushIOWait | File Id | Page Id | Page Nums | null | 8 | User I/O | 赃页回刷线程,正在等待操作系统将连续多个赃数据页面从内存回刷到磁盘里 |
| 15 | LogPhysicalReadIOWait | Log File Id | Block Id | Block Nums | null | 9 | System I/O | 后台线程等待读取在线日志文件或归档日志文件里的内容 |
| 16 | LogPhysicalWriteIOWait | Log File Id | Block Id | Block Nums | null | 9 | System I/O | 后台线程等待写入在线日志文件或归档日志文件 |
| 17 | LogWriteWait | null | null | null | null | 0 | Other | 等待将产生的redo日志写入全局日志写缓冲区,一般由于redo日志回刷不够快引起 |
| 18 | LogForceFlushWait | Flush Lsn | null | null | null | 5 | Commit | 等待指定的redo日志回刷到磁盘的在线日志文件里,常见于事务结束前 |
| 19 | LogExtendLockWait | Log File Id | Extend Size | null | null | 2 | Configuration | 后台线程正在等待操作系统完成在线日志文件的扩展 |
| 20 | LogExtendWait | null | null | null | null | 2 | Configuration | 所有的redo在线日志文件都无法扩展,等待3秒后重试 |
| 21 | TMCheckpointWait | Checkpoint Lsn | null | null | null | 2 | Configuration | 每个Catcache的list锁或者hash入口锁的等待(目前未使用) |
| 22 | DatafileLockWait | File Id | null | Latch Mode | null | 4 | Concurrency | Catcache全局lru锁等待(目前未使用) |
| 23 | DatafileExtentWait | File Id | Extend Size | null | null | 2 | Configuration | 正在等待操作系统完成数据文件的扩展 |
| 24 | TempDataFileShrinkWait | File Id | Shrink Size | null | null | 2 | Configuration | 正在等待操作系统完成临时数据文件的收缩 |
| 25 | TempDataFileShrinkReTry | File Id | Retry Number | null | null | 2 | Configuration | 正在等待其它会话释放临时数据文件的空间 |
| 26 | SegmentLockWait | Page Id | File Id | Lock Mode | null | 1 | Application | 用户线程在等待对表的数据段加上段锁,可以从V$WAIT_CHAINS等视图看出阻塞者具体是哪个会话 |
| 27 | RelationLockWait | Relation Oid | Lock Mode | null | null | 1 | Application | 用户线程在等待对表加上一个表锁,可以从V$WAIT_CHAINS等视图看出阻塞者具体是哪个会话 |
| 28 | ObjectLockWait | Class Id | Object Id | SubObject Id | Lock Mode | 1 | Application | 用户线程在等待对一个数据库对象加上对象锁,可以从V$WAIT_CHAINS等视图看出阻塞者具体是哪个会话 |
| 29 | UserLockWait | Lock Id | Release On Commit | TimeOut Seconds | Lock Mode | 1 | Application | 用户线程在等待对一个用户自定义锁加锁,可以从V$WAIT_CHAINS等视图看出阻塞者具体是哪个会话 |
| 30 | SmoLockWait | Page Id | File Id | Lock Mode | null | 1 | Application | 页面在分裂的过程中需要对索引页面加锁 |
| 31 | RowLockWait | Segment Id | Row Id | null | null | 1 | Application | 用户线程在更新某表的一行时,该行已被其它未提交事务更新,在等待未提交事务提交 |
| 32 | LatchWait | Latch Id | Latch Addr | Latch Mode | Latch Param1 | 4 | Concurrency | 等待获取某一个闩锁(Latch),闩锁是一种对全局内存进行并发控制的细粒度锁,持有时间很短,可以从V$LATCH查看持有信息 |
| 33 | ParallelBufferWriteWait | null | null | null | null | 2 | Configuration | 并行查询时等待可以向前台发送结果集 |
| 34 | ParallelBufferReadWait | null | null | null | null | 2 | Configuration | 并行查询时等待获取一行结果 |
| 35 | NetWait | null | null | null | null | 7 | Network | 用户线程在等待前台发送下一条要执行的SQL |
| 36 | BufFrameRSC | Rsc Id | PageIdPart | Seg Id | Rsc Mode | 4 | Concurrency | 等待在全局数据页面缓冲区里的某个页面加锁,页面加锁一般是写锁会被写锁/读锁阻塞,读锁不会被写锁/读锁阻塞 |
| 37 | SuspendIO | null | null | null | null | 3 | Administrative | 数据库处理挂起状态,因此当前要进行的IO操作被阻塞,直到数据库执行了RESUM操作恢复正常状态 |
| 38 | SlaveRedoForQueryWait | QueryLSN | SlaveRedoLastLSN | null | null | 4 | Concurrency | 读写分离备节点,用户线程在等待本节点推进到特定位置后再进行SQL |
| 39 | LogSlaveRedoDelay | null | null | null | null | 0 | Other | 读写分离备节点,redo线程延迟重做日志 |
| 40 | Dispatch | Node Id | null | null | null | 10 | Dispatch | 读写分离主节点,主节点发送读请求并等待返回结果 |
| 41 | RacwaitPcmPageLock | File Id | Page Id | null | null | 11 | Cluster | rac集群节点,等待加上pcm lock的convert锁 |
| 42 | WaitChannelRecv | Channel Type | TimeOut | null | null | 11 | Cluster | 等待从队列里获取内容 |
| 43 | WaitChannelSend | Channel Type | TimeOut | null | null | 11 | Cluster | 等待将消息放到发送队列 |
| 44 | RacwaitPcmAllocLock | File Id | Page Id | null | null | 11 | Cluster | rac集群节点,等待获取一个可用的空闲pcm lock |
| 45 | SegmentSearchWait | Segment Id | PFS | null | null | 0 | Other | 等待段搜索从pfs加载可用页面到全局缓存 |
| 46 | LogArchiveWait | Archivelsn | null | null | null | 4 | Concurrency | 等待归档线程将日志归档到指定lsn |
| 47 | RacRequestRemote | Req Msg Type | Remote Node Id | null | null | 11 | Cluster | rac集群节点,等待加上pcm lock的convert锁 |
| 48 | DropUndoDataFileDelay | null | null | null | null | 0 | Other | 删除 undo 数据文件时,等待其它线程读取 undo 日志结束 |
| 49 | Idle | null | null | null | null | 6 | Idle | 后台线程进入了闲置状态,睡眠特定时间,期间允许被其它线程唤醒 |
V$SESSION_WAIT¶
提供当前活动session正在等待的事件信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| SESSION_ID | INT | Session ID |
| SERIAL | INT | Session序号 |
| SEQ | INT | 唯一标识等待的序列号 |
| TXNID | INT | 事务号 |
| EVENT_ID | INT | 等待事件号 |
| EVENT_NAME | TEXT | 等待事件名 |
| P1TEXT | TEXT | 等待事件附加参数1的描述信息 |
| P1 | NUMERIC(1000,38) | 等待事件附加参数1 |
| P1RAW | BINARY(8) | 等待事件附加参数1(十六进制) |
| P2TEXT | TEXT | 等待事件附加参数2的描述信息 |
| P2 | NUMERIC(1000,38) | 等待事件附加参数2 |
| P2RAW | BINARY(8) | 等待事件附加参数2(十六进制) |
| P3TEXT | TEXT | 等待事件附加参数3的描述信息 |
| P3 | NUMERIC(1000,38) | 等待事件附加参数3 |
| P3RAW | BINARY(8) | 等待事件附加参数3(十六进制) |
| P4TEXT | TEXT | 等待事件附加参数4的描述信息 |
| P4 | NUMERIC(1000,38) | 等待事件附加参数4 |
| P4RAW | BINARY(8) | 等待事件附加参数4(十六进制) |
| STATE | TEXT | 等待状态。1. WAITING,正在等待对应事件;2. WAITED UNKNOWN TIME,退出等待状态,但未记录等待时间;3. WAITED KNOWN TIME,退出等待状态,对应事件的等待时间为 WAIT_TIME,自从上次等待结束到当前的时间为 TIME_SINCE_LAST_WAIT |
| WAIT_TIME | BIGINT | 等待时间(微秒) ,当STATE 为WAITED KNOWN TIME时,为上次等待时间 |
| TIME_SINCE_LAST_WAIT | BIGINT | 自从上次等待结束到当前的时间。如果session状态为WAITING,则该字段为0。 |
V$SESSION_WAIT_HISTORY¶
提供每个活动session最近10次等待的信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| SESSION_ID | INT | Session ID |
| SERIAL | INT | Session序号 |
| SEQ | INT | 等待事件的最近次序 |
| EVENT_ID | INT | 等待事件号 |
| EVENT_NAME | TEXT | 等待事件名 |
| P1TEXT | TEXT | 等待事件附加参数1的描述信息 |
| P1 | NUMERIC(1000,38) | 等待事件附加参数1 |
| P2TEXT | TEXT | 等待事件附加参数2的描述信息 |
| P2 | NUMERIC(1000,38) | 等待事件附加参数2 |
| P3TEXT | TEXT | 等待事件附加参数3的描述信息 |
| P3 | NUMERIC(1000,38) | 等待事件附加参数3 |
| P4TEXT | TEXT | 等待事件附加参数4的描述信息 |
| P4 | NUMERIC(1000,38) | 等待事件附加参数4 |
| WAIT_TIME | BIGINT | 总的等待时间(微秒) |
| TIME_SINCE_LAST_WAIT | BIGINT | 上次等待结束之后的时间间隔(微秒) |
V$WAIT_CHAINS¶
提供当前的等待链,可用于查看当前各session的相互等待信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| CHAIN_ID | SMALLINT | 标识等待链的序号 |
| PID | BIGINT | 被阻塞session的线程ID |
| SESSION_ID | INT | 被阻塞session的Session ID |
| TXN_ID | INT | 被阻塞session的事务号 |
| SERIAL | INT | 被阻塞session的序号 |
| BLOCKER_IS_VALID | BOOLEAN | 被阻塞session是否存在阻塞者 |
| BLOCKER_PID | BIGINT | 阻塞session的线程ID |
| BLOCKER_SESSION_ID | INT | 阻塞session的Session ID |
| BLOCKER_SERIAL | INT | 阻塞session的序号 |
| BLOCKER_TXN_ID | INT | 阻塞session的事务号 |
| IN_WAIT | BOOLEAN | 被阻塞session是否在等待 |
| TIME_SINCE_LAST_WAIT | BIGINT | 被阻塞session上次等待结束到当前的的时间。(IN_WAIT = false时为null) |
| WAIT_ID | INT | 等待事件号(IN_WAIT = false时为null) |
| WAIT_EVENT | TEXT | 等待事件名(IN_WAIT = false时为null) |
| P1 | TEXT | 等待附加参数1(IN_WAIT = false时为null) |
| P1_TEXT | TEXT | 等待附加参数1的描述(IN_WAIT = false时为null) |
| P2 | TEXT | 等待附加参数2(IN_WAIT = false时为null) |
| P2_TEXT | TEXT | 等待附加参数2的描述(IN_WAIT = false时为null) |
| P3 | TEXT | 等待附加参数3(IN_WAIT = false时为null) |
| P3_TEXT | TEXT | 等待附加参数3的描述(IN_WAIT = false时为null) |
| P4 | TEXT | 等待附加参数4(IN_WAIT = false时为null) |
| P4_TEXT | TEXT | 等待附加参数4的描述(IN_WAIT = false时为null) |
| IN_WAIT_SECS | BIGINT | 当前的等待时间(IN_WAIT = false时为null) |
| NUM_WAITERS | INT | 等待被阻塞session的session个数 |
V$SESSION_EVENT¶
提供session级别的等待事件统计信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| SESSION_ID | INT | Session ID |
| SERIAL | INT | Session序号 |
| EVENT_ID | INT | 等待事件号 |
| EVENT_NAME | TEXT | 等待事件名 |
| TOTAL_WAITS | BIGINT | session对事件的总等待次数 |
| TOTAL_TIMEOUTS | BIGINT | 总超时次数 |
| TIME_WAITED | BIGINT | session对事件的总等待时间(百分之一秒) |
| AVERAGE_WAIT | BIGINT | session对事件的平均等待时间(百分之一秒) |
| MAX_WAIT | BIGINT | session对事件的最大等待时间(百分之一秒) |
V$SESSION_WAIT_CLASS¶
提供各类等待的session级统计信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| SESSION_ID | INT | Session标识符 |
| SERIAL | INT | Session序号 |
| WAIT_CLASS_ID | SMALLINT | 等待类的序号 |
| WAIT_CLASS | TEXT | 等待类的名称 |
| TOTAL_WAITS | BIGINT | 当前session的总等待次数 |
| TIME_WAITED | BIGINT | 当前session的总等待时间 |
V$SYSTEM_EVENT¶
提供当前实例所有等待事件的统计信息。
| 列名 | 类型 | 描述 |
|---|---|---|
| EVENT_ID | INT | 等待事件号 |
| EVENT | TEXT | 等待事件的名称 |
| TOTAL_WAITS | BIGINT | 事件的总等待次数 |
| TOTAL_TIMEOUTS | BIGINT | 事件的总等待超时次数 |
| TIME_WAITED | BIGINT | 事件的总等待时间数(百分之一秒) |
| AVERAGE_WAIT | BIGINT | 事件的平均等待时间(百分之一秒) |
| TOTAL_WAITS_US | BIGINT | 用户session对事件的总等待次数 |
| TOTAL_TIMEOUT_US | BIGINT | 用户session对事件的总等待超时次数 |
| TIME_WAITED_US | BIGINT | 用户session对事件的总等待时间数 (百分之一秒) |
| AVERAGE_WAIT_US | BIGINT | 用户session对事件的平均等待时间 (百分之一秒) |
V$SYSTEM_WAIT_CLASS¶
提供系统各类等待的统计信息,其中idle(空闲等待)和network(网络)的等待基本上上等待用户输入,等待次数和用户等待次数无太大意义,不进行统计。
| 列名 | 类型 | 描述 |
|---|---|---|
| WAIT_CLASS_ID | INT | 等待类号 |
| WAIT_CLASS | TEXT | 等待类的名字 |
| TOTAL_WAITS | BIGINT | 该类等待的次数 |
| TIME_WAITED | BIGINT | 该类等待的总时间(百分之一秒) |
| TOTAL_WAITS_US | BIGINT | 用户session等待的总次数 |
| TIME_WAITED_US | BIGINT | 用户session等待的总时间(百分之一秒) |