请问怎么动态取得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包中的方法可以解决, 直接读写磁盘文件