暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 性能的黄金信号

ASKTOM 2019-11-06
251

问题描述

你好,汤姆

我是站点可靠性团队 (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这样的东西中捕获信息,给你一个更好的数据分布。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论