Oracle OWI等待事件历史视图及相关视图
Oracle OWI等待事件历史视图及相关视图
Oracle提供的等待事件视图使得我们可以获取指定session以及实例级别等待事件的详细信息,这些视图分别是v$session_wait,v$session_event,以及v$system_event。然而这几个视图对于历史等待事件无能为力。
对此,Oracle也提供了历史等待事件视图v$session_wait_history,同时视图v$session_wait_class,v$system_wait_class也提供了基于等待类别的性能分析,下面是基于Oracle 10g对此展开的描述。
1、视图v$session_wait_history
[sql]
--望文生义可知,v$session_wait_history视图提供了历史等待事件的信息。
--v$session_wait_history与v$session_wait基本相同,仅仅多出了SEQ#,EVENT#,WAIT_COUNT这三列。
--SEQ#列表示SESSION按顺序遇到的等待事件,最近的等待事件为1,最远的为10。
--通过该视图可以快速了解指定sid最近曾经经历了哪些等待(美中不足的是只提供最近的10个等待事件)。
--当开始一个新的等待事件时,该视图中的信息将被刷新,记录最远时间的事件将会移出,同时最新的等待事件为1,其他向后移一个顺序号。
--WAIT_TIME 列表示这个等待事件在会话中的等待时间。=0:表示正在等待事件完成;>0最后的等待时间。
--WAIT_CONT列表示等待的次数。
--查询历史sid
goex_admin@SYBO2SZ> SELECT DISTINCT sid
2 FROM v$session_wait_history h
3 WHERE NOT EXISTS
4 (SELECT 1
5 FROM v$session_event
6 WHERE sid = h.sid);
SID
----------
1062
1065
1060
--下面查询sid为1062的历史等待事件信息
--下面的查询可以看出该sid经历了一系列的等待事件
--seq#为10的表明是sql被解析到library cache时的等待
--seq#为9的则是表明加载数据字典到缓冲区碰到的等待
--seq#为7,8则表明在返回结果时经历了db file sequential read等待
--seq#为6表明当前sid所需的数据块在被读入buffer时,此时其他的session正在将该块读入buffer
--seq#为1,2表明处于空闲等待,从WAIT_TIME为0也可知为空闲等待,之后该sid被关闭
goex_admin@SYBO2SZ> select sid,seq#,event#,event,wait_time,wait_count from v$session_wait_history where sid=1062;
SID SEQ# EVENT# EVENT WAIT_TIME WAIT_COUNT
---------- ---------- ---------- ------------------------------- ---------- ----------
1062 1 257 SQL*Net message from client 0 1
1062 2 253 SQL*Net message to client 0 1
1062 3 116 db file sequential read 9 1
1062 4 257 SQL*Net message from client 0 1
1062 5 253 SQL*Net message to client 0 1
1062 6 67 read by other session 6 1
1062 7 116 db file sequential read 11 1
1062 8 116 db file sequential read 1 1
1062 9 205 latch: row cache objects 9 1
1062 10 212 latch: library cache 5 1
2、视图v$session_wait_class
[sql]
--该视图提供了当前连接到数据库实例的所有会话级的信息。
--查看所有session等待类别
goex_admin@SYBO2SZ> SELECT wait_class#,
2 wait_class,
3 SUM (total_waits),
4 SUM (time_waited)
5 FROM v$session_wait_class
6 GROUP BY wait_class#, wait_class
7 ORDER BY 3, 4;
WAIT_CLASS# WAIT_CLASS SUM(TOTAL_WAITS) SUM(TIME_WAITED)
----------- --------------------- ---------------- ----------------
1 Application 42 0
2 Configuration 1219 110012
5 Commit 1332 154
0 Other 14387 19744
4 Concurrency 34092 74180
8 User I/O 1945820 42429
9 System I/O 3899256 731677
7 Network 4580071 9068
6 Idle  
上一个:Oracle监控索引的使用率
下一个:Oracle存储过程及问题备忘
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?