看eygle循序渐进中提到了oracle 几个很重要的视图。关于oracle的等待事件v$session_wait和v$session_event应该是检查oracle数据库性能瓶颈的很有用的视图。
V$session_wait提供了任何情况下session在数据库中当前等待什么(如果session当前什么也没有做,显示最后的等待事件)
V$session_wait中常用column:
Sid: session id对应与v$session等视图的sid
Event:session等待的事件
Seq#:等待事件触发每次加1
P1,P2,P3 等待事件中等待的信息
(P1-与等待相关的数据文件的全部文件数量
P2-P1中得数据文件的块数量
P3-描述等待产生原因的代码)
P1TEXT,P2TEXT,P3TEXT解释说明p1,p2.,p3事件
State的几种值:waiting(session正等待这个事件);waited unknow time;wait short time; wiated know time
Wait_time: Wait_time>0:最后一次等待的时间,当前未在等待状态;Wait_time=0:session正在等待当前事件。
Wait_time和second_in_wait字段值与state相关:
如果state值为waiting,wait_time值无用。Second_in_time值是实际等待时间
如果state值为waiting know time,那么wait_time值等级等待事件,second_in_tiem无用
其余wait unknow time和wait short time,wait_time和second_in_time均无用。
由于本机是测试库,查看v$session_wait发现了几个等待事件,查看发现了很多的是SQL*Net message from client事件,服务器端在等待用户操作。该事件一般不作为瓶颈的考虑。(查看网络)
V$session_event视图记录了session自启动所有的事件
Total_waits: 此session当前事件的总等待数
Total_timeouts:总等待超时数
Time_waited:事件总等待的时间
Average_wait:事件平均等待时间
Event_id(事件ID) wait_class# 事件类别编号 wait_class 等待事件类别信息
Oracle中主要有两类等待事件:空闲(idle)等待事件和非空间(non-idle)等待事件
这里简单说了点视图,后续的具体oracle等待事件的分析。越来越觉得oracle真是太深奥了!
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1055239/ ,如需转载,请注明出处,否则将追究法律责任。