问题描述
你好,汤姆
我是站点可靠性团队 (SRE) 的成员,我们正在尝试为Oracle 11g/12c数据库开发SRE “黄金信号”。
这些信号是:
1) 吞吐量
2) 延迟
3) 响应时间
4) 错误率 (不确定)
如何在Oracle数据库中使用SQL查询派生这些度量?
我的研究强调了以下SQL查询:
1) 响应时间
-------------
2) 吞吐量
----------
不确定延迟吗?
我是站点可靠性团队 (SRE) 的成员,我们正在尝试为Oracle 11g/12c数据库开发SRE “黄金信号”。
这些信号是:
1) 吞吐量
2) 延迟
3) 响应时间
4) 错误率 (不确定)
如何在Oracle数据库中使用SQL查询派生这些度量?
我的研究强调了以下SQL查询:
1) 响应时间
-------------
select to_char(begin_time,'hh24:mi') time, round( value * 10, 2) "Response Time (ms)"
from v$sysmetric
where metric_name='SQL Service Response Time'2) 吞吐量
----------
select a.begin_time, a.end_time,round(((a.value + b.value)/131072),2) "GB per sec" where a.metric_name = 'Logical Reads Per Sec' and b.metric_name = 'Physical Reads Direct Per Sec' and a.begin_time = b.begin_time;
不确定延迟吗?
专家解答
老实说,至少在宏观层面上,我不喜欢这种 “信号”。
例如,如果我运行10条响应时间如下的SQL语句:
1毫秒
1毫秒
1毫秒
10秒
1毫秒
1毫秒
1毫秒
1毫秒
1毫秒
1毫秒
那么我的平均响应时间是: 1秒
1秒可能被视为 “可以”,但是我们已经失去了一个事实,那就是有人在浏览器上停留了10秒钟。
而不是信号,要注意超出阈值的异常值,甚至它们也应该按照业务需求的定义。例如,上面的10秒是web浏览器上的灾难,但是1000秒对于夜间批处理作业可能完全可以。
一个很好的方法是使用AWR报告,或者,如果你没有获得许可,像Statspack这样的东西,因为他们会从像V $ EVENT_HISTOGRAM这样的东西中捕获信息,给你一个更好的数据分布。
例如,如果我运行10条响应时间如下的SQL语句:
1毫秒
1毫秒
1毫秒
10秒
1毫秒
1毫秒
1毫秒
1毫秒
1毫秒
1毫秒
那么我的平均响应时间是: 1秒
1秒可能被视为 “可以”,但是我们已经失去了一个事实,那就是有人在浏览器上停留了10秒钟。
而不是信号,要注意超出阈值的异常值,甚至它们也应该按照业务需求的定义。例如,上面的10秒是web浏览器上的灾难,但是1000秒对于夜间批处理作业可能完全可以。
一个很好的方法是使用AWR报告,或者,如果你没有获得许可,像Statspack这样的东西,因为他们会从像V $ EVENT_HISTOGRAM这样的东西中捕获信息,给你一个更好的数据分布。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




