我正在使用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内存使用情况时间
答案 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