欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle系统繁忙时,快速定位

程序员文章站 2024-01-24 23:28:34
...

1 看现在的连接数 select count(*) from gv$session; 2 我们这里是bs架构,我们针对应用来看一下session的大致情况2.1 执行的sql

1 看现在的连接数

select count(*) from gv$session;

2 我们这里是bs架构,我们针对应用来看一下session的大致情况
2.1 执行的sql
select gs.inst_id,
gs.SID,
gvs.sql_text,
gs.SERIAL#,
gs.STATUS,
gs.EVENT,
gs.WAIT_CLASS,
gs.WAIT_TIME,
gs.SECONDS_IN_WAIT,
p.spid,
gs.logon_time
from gv$process p, gv$session gs
left join gv$sql gvs
on gs.sql_id = gvs.sql_id
where gs.PROGRAM = 'JDBC Thin Client'
and gs.paddr = p.ADDR;

说明:
1)State字段有四种含义﹕

(1)Waiting:SESSION正等待这个事件。
(2)Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间很短。
(3)Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。
(4)Waited knnow time:如果session等待然后得到了所需资源,那么将从waiting进入本状态。

2).Wait_time值也有四种含义:

(1)值>0:最后一次等待时间(单位:10ms),当前未在等待状态。
(2)值=0:session正在等待当前的事件。
(3)值=-1:最后一次等待时间小于1个统计单位,当前未在等待状态。
(4)值=-2:时间统计状态未置为可用,当前未在等待状态。

3).Wait_time和Second_in_wait字段值与state相关:

(1)如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。
(2)如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。
(3)如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。
(4)如果state值为Waiting known time,,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。

Oracle系统繁忙时,快速定位