日期:2014-05-17  浏览次数:20761 次

请问怎么动态取得Oracle的连接数,并将其保存为一个文件?
大家好,对于Oracle我是外行,但是目前在做一个性能分析的时侯急需要一些Oracle的监控数据,目前我希望实现这样的功能:

每隔一定时间(比如5秒)取得Oracle的总连接数和用户标示为“test“的连接数,然后将这些数据保存(可以为任何形式,只要以后能够调用到就可以了),最后最好能有一个汇总的结果,即平均连接数。

Oracle数据库部署在一台redhat   es4上,版本为10g
目前我用select   count(*)   from   v$session可以取得总连接数,但是不知道怎么定时动态存取,还有要查询一定条件的连接数(比如特定用户)不知道怎么做?

由于项目时间紧急,希望得到各位大侠的协助。先行谢过了!

------解决方案--------------------
做statspack.
里面会的.

你可以半小时一个快照.
------解决方案--------------------
1.先创建个数据分析表。
2.写个过程,取得数据后往这个表里插入,用job定时调用。
3.对表数据进行分析。
------解决方案--------------------
-- 按用户查看连接数和active连接数
select decode(grouping(t.username),1, '合计 ',t.username) machine ,count(*) num, sum(decode(t.STATUS, 'ACTIVE ',1,0)) active
from v$session t
--where t.STATUS= 'ACTIVE '
group by rollup(t.USERNAME)
order by num desc
------解决方案--------------------
用sql语句:
select username,count(*) from v$session group by username;

------解决方案--------------------
操作系统里统计
ps -ef | grep oracle | wc
------解决方案--------------------
用utl_file包中的方法可以解决, 直接读写磁盘文件