我想监控应用程序 Oracle DB 发出的调用次数。我应该使用哪个计数器(来自 V$table)?
答案1
我可能会从这个开始,尽管你会加入 v$session 而不是 v$mystat,并过滤属于你的应用程序的会话。但如果会话在未使用时断开连接,这可能会“低估”。
select sid, name, value from v$sesstat s
join v$statname n on n.statistic# = s.statistic#
where s.sid in (select sid from v$mystat where rownum=1)
and value > 0
and name in ('user calls')
order by value desc;
另外,我不确定调用是否是一个特别好的指标。如果只能选择一个,我会选择“一致获取”(基本上是数据库块读取)。
最后警告。指标无法区分“由于代码/配置/任何问题,我们正在做更多工作”和“由于我们与客户开展了更多业务,我们在数据库中做了更多工作”。