不活动的Oracle会话是否会导致CPU使用率过高或CPU等待时间增加?
问题描述:
如果我有相当多的非活动数据库会话也可能在CONNECTION POOL中使用,我想知道它们是否会导致CPU使用率过高或增加CPU等待周期?不活动的Oracle会话是否会导致CPU使用率过高或CPU等待时间增加?
答
简而言之,v$session
中的INACTIVE
状态表示在检入v$session
时没有执行SQL语句。
就本质而言,大量的ACTIVE
会话会减慢整个DBMS,包括您的应用程序,并可能导致CPU利用率高。
非活动会话的影响很小,除非您超过最大会话数。
活动会话的CPU使用率可以通过以下查询来检查。
SELECT
s.username,
t.sid,
s.serial#,
SUM(VALUE/100) as "cpu usage (seconds)"
FROM
v$session s,
v$sesstat t,
v$statname n
WHERE
t.STATISTIC# = n.STATISTIC#
AND
NAME like '%CPU used by this session%'
AND
t.SID = s.SID
AND
s.status='ACTIVE'
AND
s.username is not null
GROUP BY username,t.sid,s.serial#
/
退房ORACLE的V $会议文件http://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2088.htm#REFRN30223
感谢@XING你的答案。你能否指定一件事是否影响应用程序性能?我的意思是CPU是好的,但应用程序是否会表现正常或可能会变慢。 –
我已经提到过,它几乎不会影响您的应用程序,直到您超过最大会话数。 – XING
好的再次感谢。 –