oracle job计算Database中的活动连接数

时间:2016-11-07 14:13:44

标签: oracle

我正在使用oracle DB,现在因为我正在监视连接到我的java应用程序的oracle DB的性能,所以现在我必须定期监视DB中活动连接的数量,让我们说每隔30分钟一次下面是查询,它返回活动用户的数量以及名称和计数

select osuser, count(osuser) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc

现在请告知我如何在oracle数据库中创建一个每30分钟触发一次的工作,并捕获上面的查询结果,即根据用户的活动连接数以及Oracle DB内存使用情况时间

1 个答案:

答案 0 :(得分:0)

您应该删除此问题并将其作为两个单独的问题(请参阅我的问题评论)。您提出两个问题:1。如何获取内存; 2.如何安排工作。这里只回答第一个问题。

为了获得内存,你可以使用类似的东西(此时我的数据库输出):

select case grouping_id(nm) when 1 then 'total' else nm end as nm, 
       round(sum(val/1024/1024)) mb
from (
       select 'sga' nm, sum(value) val
         from v$sga
       union all
       select 'pga', sum(value)
       from v$sysstat
       where name = 'session pga memory'
)
group by rollup(nm)
;

NM      MB
----- ----
pga     49
sga   4896
total 4945