使用SQL查询监控Oracle性能

时间:2015-12-06 23:09:34

标签: oracle oracle11g oracle10g

我想问几个关于Oracle监控的问题。我可以使用SQL查询获取监视数据,如CPU利用率,RAM利用率,HDD空间,表空间等。我是否需要使用特权用户或我可以使用每个Oracle用户?如果这不可能有什么替代方案?

2 个答案:

答案 0 :(得分:1)

根据您提到的内容,我认为只应使用查询监控表空间使用情况。 (在这里查看非常好的查询:Find out free space on tablespace

应该在操作系统级别监视CPU和文件系统(异常可能是ASM,其中查询可能比ASM控制台更容易使用)。

如果您想监控单个会话的使用情况,则需要访问数据字典的权限,例如v$sql_workarea_activev$session获取会话或查询的RAM使用情况,或v$session_wait获取有关等待的信息等。我不知道您希望监控的内容,但Oracle文档是你的朋友找到这些词典的信息。

我知道的最佳解决方案是使用Oracle Enterprise Manager,您可以轻松监控所有指标并创建自己的指标。

您还可以使用Zabbix等开源工具(或您选择的其他工具)实施自己的指标监控。这也是便宜得多的方式。

答案 1 :(得分:1)

Oracle具有性能视图,我们将从中获取有关Oracle数据库性能的信息。

要回答您的问题,您可以查询v $ osstat视图,以使用SQL查询获取有关CPU利用率,RAM利用率,HDD等的信息。Official Oracle documentation on v$osstat

Image of query and result

还有很多其他视图,尤其是v $ sysstat,v $ sqlstat,v $ sys_time_model,v $ metric,您可以在其中挖掘大量与性能相关的信息。您可以参考以下链接,查看可以在Oracle中查询的所有基本指标

Oracle Metrics List by Don Burleson