Oracle 11G - 确定峰值进程和会话

时间:2015-11-27 07:15:51

标签: oracle session process oracle11g

因此,作为我们oracle数据库重新配置的一部分,我试图找出数据库实例的最大进程数量。

虽然我能够获取在数据库上运行的当前进程/会话,但我不确定在11G中是否存在包含此信息的函数/视图。

我已经完成了搜索但是没有真正出现过。

谢谢, ç

2 个答案:

答案 0 :(得分:1)

我希望我能正确理解你想要查找会话活动的历史数据以监控性能。我能想到几种解决方案。

我建议DBA_HIST_ACTIVE_SESS_HISTORY,V $ ACTIVE_SESSION_HISTORY用于历史数据,V $ SESSION用于当前数据。 (我猜您正在使用V $ SESSION获取当前进程/会话状态。)

如果这还不够,您可以始终使用计划执行创建自己的过程并在某处存储当前状态的快照,或使用Zabbix捕获器(或您选择的任何其他监视工具)来监视数据库活动。

如果您有Oracle Enterprise Manager,我建议您使用它。您可以在那里使用性能页面查看会话的当前和历史数据,还可以生成ASH报告。

答案 1 :(得分:0)

DBA_HIST_SYSMETRIC_SUMMARY中的活动工作负载存储库(AWR)中提供了高级进程和会话。

--Maximum number of sessions.
select instance_number, maxval, begin_time
from dba_hist_sysmetric_summary
where metric_name = 'Session Count'
order by maxval desc, begin_time desc;

--Maximum number of processes.
--This is a little trickier because only the Limit is stored so it must be compared
--to the parameter value.
--This assumes that the PROCESSES parameter hasn't changed recently.
select instance_number, round(maxval/100 * gv$parameter.value) processes, begin_time
from dba_hist_sysmetric_summary
join gv$parameter
    on dba_hist_sysmetric_summary.instance_number = gv$parameter.inst_id
where gv$parameter.name = 'processes'
    and metric_name = 'Process Limit %'
order by processes desc, begin_time desc;

这可能是设置PROCESSES和SESSIONS参数的足够信息。如果您真正需要知道数据库是如何活动,那么请查看  与J91321一样,DBA_HIST_ACTIVE_SESS_HISTORY可能是一种更好的方法。