学习动态性能表3----v$session_wait
V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。
V$SESSION_WAIT中的常用列
SID: session标识
EVENT: session当前等待的事件,或者最后一次等待事件。
WAIT_TIME: session等待事件的时间(单位,百分之一秒)如果本列为0,说明session当前session还未有任何等待。
SEQ#: session等待事件将触发其值自增长
P1, P2, P3: 等待事件中等待的详细资料
P1TEXT, P2TEXT, P3TEXT: 解释说明p1,p2,p3事件
附注:
1.State字段有四种含义﹕
Waiting:SESSION正等待这个事件。
Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间很短。
Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。
Waited knnow time:如果session等待然后得到了所需资源,那么将从waiting进入本状态。
Wait_time值也有四种含义:
值>0:最后一次等待时间(单位:10ms),当前未在等待状态。
值=0:session正在等待当前的事件。
值=-1:最后一次等待时间小于1个统计单位,当前未在等待状态。
值=-2:时间统计状态未置为可用,当前未在等待状态。
3.Wait_time和Second_in_wait字段值与state相关:
如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。
如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。
如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。
如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。
V$SESSION_WAIT中的连接列
Column View Joined Column(s)
SID V$SESSION SID
示例:
1.列出当前系统的等待事件
SELECT event,
sum(decode(wait_time,0,1,0)) "Curr",
sum(decode(wait_time,0,0,1)) "Prev",
count(*)"Total"
FROM v$session_wait GROUP BY event ORDER BY count(*);
EVENT Prev Curr Tot
--------------------------------------------- ---- ----- -----
PL/SQL lock timer 0 1 1
SQL*Net more data from client 0 1 1
smon timer 0 1 1
pmon timer 0 1 1
SQL*Net message to client 2 0 2
db file scattered read 2 0 2
rdbms ipc message 0 7 7
Enqueue 0 12 12
pipe get 0 12 12
db file sequential read 3 10 13
latch free 9 6 15
SQL*Net message from client 835 1380 2215
这个按事件和wait_time的分组查询列出下列的信息:
多数的session都是空闲事件如:SQL*Net message from client, pipe get, PMON timer等。
session的cpu占用可以通过上次session的非等待事件大致算出,除此问题外:看起来多数session没有在等待什么事情(难道他们都在干活?)但其最后等待事件都是SQL*Net message from client。
列出指定ID的等待事件
select * from v$session_wait where sid=100;
应用p1,p2,p3进行等待事件的分析
v$session_wait视图的列代表的缓冲区忙等待事件如下:
P1—与等待相关的数据文件的全部文件数量。
P2—P1中的数据文件的块数量。
P3—描述等待产生原因的代码。
例:select p1 "File #", p2 "Block #", p3 "Reason Code"
from v$session_wait
where event = 'buffer busy waits';
如果以上查询的结果显示一个块在忙等待,以下的查询将显示这一块的名称和类型:
select owner, segment_name, segment_type
from dba_extents
where file_id = &P1 and &P2 between block_id and block_id + blocks -1;
我们也可以查询dba_data_files以确定等待的文件的file_name,方法是使用v$session_wait中的P1。
从v$session_wait中查询P3(原因编码)的值可以知道session等待的原因。原因编码的范围从0到300,下列为部分编码所代表的事项:
0 块被读入缓冲区。
100 我们想要NEW(创建)一个块,但这一块当前被另一session读入。
110 我们想将当前块设为共享,但这一块被另一session读入,所以我们必须等待read()结束。
120 我们想获得当前的块,但其他人已经将这一块读入缓冲区,所以我们只能等待他人的读入结束。
130 块被另一session读入,而且没有找到其它协调的块,所以我们必须等待读的结束。缓冲区死锁后这种情况也有可能产生。所以必须读入块的CR。
200 我们想新创建一个block,但其他人在使用,所以我们只好等待他人使用结束。
210 Session想读入SCUR或XCUR中的块,如果块交换或者session处于非连续的TX模式,所以等待可能需要很长的时间。
220 在缓冲区查询一个块的当前版本,但有人以不合法的模式使用这一块,所以我们只能等待。
230 以CR/CRX方式获得一个块,但块中的更改开始并且没有结束。
231 CR/CRX扫描找到当前块,但块中的更改开始并且没有结束。
学习动态性能表3----v$session_wait相关推荐
- oracle表是动态表怎么算排名,Oracle学习动态性能表
按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况. 类似于v$s Oracle 学习动态性能表 v$l ...
- 学习动态性能表 第五篇--V$SESSION
学习动态性能表 第五篇--V$SESSION 在本视图中,每一个连接到数据库实例中的session都拥有一条记录.包括用户session及后台进程如DBWR,LGWR,arcchiver等等. V$ ...
- 学习动态性能表(3)--v$sqlv$sql_plan
学习动态性能表 第三篇-(1)-v$sq 2007.5.25 V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cur ...
- 学习动态性能表 第二篇--v$sesstat
学习动态性能表 第二篇--v$sesstat 按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计. 类似于v$syssta ...
- 学习动态性能表(20)--v$waitstat
学习动态性能表 第20篇--V$WAITSTAT 2007.6.15 本视图保持自实例启动所有的等待事件统计信息.常用于当你发现系统存在大量的"buffer busy waits" ...
- 学习动态性能表(10)--v$session_longops
学习动态性能表 第十篇--V$SESSION_LONGOPS 2007.6.7 本视图显示运行超过6秒的操作的状态.包括备份,恢复,统计信息收集,查询等等. 要监控查询执行进展状况,你必须使用cos ...
- 学习动态性能表(19)--v$undostat
学习动态性能表 第19篇--V$UNDOSTAT 2007.6.14 本视图监控当前实例中undo空间以及事务如何运行.并统计undo空间开销,事务开销以及实例可用的查询长度. V$UNDOSTAT ...
- oracle session_wait,转载:学习Oracle动态性能表-(8)-V$SESSION_WAIT,V$SESSION_EVENT
(1)-V$SESSION_WAIT 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存 ...
- juns java,学习动态性能表第六篇-(1)-V$SESSION_WAIT 转自三思 http://junsansi.itpub.net/post/29894/292373...
这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存在性能问题时,本视图可以做为一个起点指 ...
- 分享-动态性能表详解
从IT-PUB上down下来的一些关于oracle的动态性能表的总结,在大家对oracle进行性能调整和瓶颈检查会有很大的帮助的,不是我写的,在此拿出来跟博客园的朋友分享,共同进步! 一个 ...
最新文章
- oracle10安装网络需求警告,安装oracle10出现的问题,求解!!!!!(在线等)
- mSystems:干旱对土壤微生物组的影响
- sqlite字段是否存在_学习廖雪峰的JAVA教程---反射(访问字段)
- 深度学习之基于opencv和CNN实现人脸识别
- 心情再差,也还是要拿起我的 JavaScript 实战重点代码
- Python装饰器总结,带你几步跨越此坑!
- jquery.hotkeys监听键盘按下事件keydown
- 明天(20171017)继续学习阅读的文章
- c++ map 析构函数_面向偷懒的编程 - C/C++项目中使用Go的分布式系统库
- SpringBoot(二)
- 微软sql服务器可以卸载,完美卸载SQL Server 2008的方法
- 乐观锁实现之CAS算法分析
- iOS组件化方案对比
- Excel 技巧百例:数据透视表的简单使用-行列转换
- 高山仰止,景行行止。虽不能至,然心向往之。
- 高频PCB设计设计技巧简述
- 唐诗页面爬取 --- 预研阶段
- 上班人员必读:“五险一金”详解!
- 【Unity VR开发】结合VRTK4.0:瞬移点
- 度量衡计算工具_中国古代度量衡领先世界的计量工具
热门文章
- java中的 element_Java中队列的element()方法的用法
- 宿命传说2之女神召唤java_【更新公告】新SSR装备召唤概率限时UP!梅林领悟了全新助战技!...
- 从 Promise、Async/Await 、Generator等角度实现一个 sleep 函数
- iOS App之间的通信方式
- 从程序详解拒绝服务攻击
- TortoiseGit-创建分支、合并分支
- iconv 中文截断问题的解决方法
- Linux下的shell编程(二)BY 四喜三顺
- Lady Gaga Feat. Colby O'Donis - Just Dance
- 【java与智能设备】CH07_01_Android中的文件存储