我正在使用IIS计数器来监控IIS的“业务”。我特别喜欢其中两个:
因为我的瓶颈是数据库,它发生在Oracle 10g上,我想知道是否可以从Oracle服务器(数据库级别)获取类似的计数器。
基本上我想知道有多少请求数据库ABC在我请求的那一刻等待服务,以及自从(上次重置,当天的开始......)以来已经提供了多少请求
如何获取Oracle Server的这些数据?
答案 0 :(得分:2)
V$SESSION
可用于确定当前时刻有多少数据库会话处于活动状态。此查询将显示当前时刻活动的用户会话数(而不是Oracle数据库自身创建的后台会话)。您可能希望进一步将此限制为活动会话的数量,其中USERNAME
是您的中间层连接的用户,或者创建会话的MACHINE
是您的中间层之一服务器
SELECT COUNT(*)
FROM v$session
WHERE status = 'ACTIVE'
AND type = 'USER'
对于Web浏览器的“服务请求数”,Oracle中没有简单的映射。从数据库的角度来看,没有任何关于“请求”开始和结束的标记。您可能会对事务进行计数,但Oracle数据库本身会不断在后台发布事务,如果您想要一个与所服务的网页数量密切相关的度量,则可能会导致问题。
尽管如此,使用计数器诊断和监控Oracle数据库性能并不是一个特别好的主意。 Oracle提供了更复杂的监视和调优工具。根据版本(标准版或企业版)以及您是否已获得性能和调优包的许可,从数据库成为瓶颈的时间段中获取AWR report并分析其中的内容会更好什么需要调整。