首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >脚本:使用AWR快照原始数据评估存储性能

脚本:使用AWR快照原始数据评估存储性能

作者头像
姚远OracleACE
发布2025-11-21 14:39:35
发布2025-11-21 14:39:35
60
举报
文章被收录于专栏:oracleaceoracleace

对于DBA来说,了解存储性能非常重要,这能帮助你更准确地判断数据库的整体表现。然而,在许多企业环境中,DBA往往没有操作系统层面的访问权限,无法使用iostat或sar等工具。幸运的是,Oracle的AWR快照原始数据中保存了历史I/O性能指标,可以用来间接评估存储性能。

其中一个非常有用的指标是DBA_HIST_SYSMETRIC_HISTORY视图中的Average Synchronous Single-Block Read Latency。

为什么选择这个指标?

因为它通常反映的是直接访问存储设备的物理读操作,往往绕过操作系统缓存。因此,它能更真实地反映I/O层面的存储性能,而不是被操作系统缓存机制所掩盖的延迟。

下面是我写的一个SQL,它计算在过去30天内(AAS > 5的繁忙时段)该指标的平均值和方差,用于评估存储的速度和稳定性:

代码语言:javascript
复制
-- Yuan Yao Nov 2025
SELECT ROUND(AVG(h.value), 4) AS average_latency,
       ROUND(VARIANCE(h.value), 4) AS variance_latency
FROM DBA_HIST_SYSMETRIC_HISTORY h
JOIN DBA_HIST_SNAPSHOT s ON h.snap_id = s.snap_id
JOIN DBA_HIST_SYSMETRIC_HISTORY b ON h.snap_id = b.snap_id
WHERE h.metric_name = 'Average Synchronous Single-Block Read Latency'
       AND s.begin_interval_time >= SYSDATE - 30
       AND b.metric_name = 'Average Active Sessions'
       AND b.value > 5
       AND h.value != 0;

单位是毫秒(ms)。

  • 平均值越低,表示读速度越快;
  • 方差越小,表示性能越稳定。

结合两者,你可以在没有操作系统监控权限的情况下,通过AWR快照数据了解存储在真实工作负载下的表现。

下面是来自一台物理服务器的示例输出:

代码语言:javascript
复制
   AVERAGE_LATENCY    VARIANCE_LATENCY
__________________ ___________________
            0.6684               0.857

下面是来自一台虚拟机的示例输出:

代码语言:javascript
复制
AVERAGE_LATENCY VARIANCE_LATENCY
--------------- ----------------
         52.206         6805.532

从结果可以清楚看到,虚拟化环境相比物理服务器在读延迟和稳定性上都有明显差异。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 oracleace 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档