oracle请求计数器

时间:2011-04-04 15:03:12

标签: sql oracle performancecounter

我正在使用IIS计数器来监控IIS的“业务”。我特别喜欢其中两个:

  1. 当前匿名用户(当前拥有WWW服务的匿名请求的用户数。在IIS 6.0中,当前用户(匿名或非匿名)是服务器当前正在处理的请求数)
  2. Total Anonymous User(自WWW服务启动以来已建立匿名请求的用户数。当从内核缓存提供文件时,此计数器不会递增。)
  3. 因为我的瓶颈是数据库,它发生在Oracle 10g上,我想知道是否可以从Oracle服务器(数据库级别)获取类似的计数器。

    基本上我想知道有多少请求数据库ABC在我请求的那一刻等待服务,以及自从(上次重置,当天的开始......)以来已经提供了多少请求

    如何获取Oracle Server的这些数据?

1 个答案:

答案 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并分析其中的内容会更好什么需要调整。