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

AWR 报告深度解读:Time Model Statistics 信息的计算和获取

原创 eygle 2019-09-08
1732

在 AWR 报告中,Time Model Statistics 记录了数据库用户维度(User Calls)的总时间消耗分布。


这部分信息来自:SYS.DBA_HIST_SYS_TIME_MODEL ,是通过针对前后两个采样点的差值计算得来的。


计算的SQL如下:

SQL> SELECT a.STAT_NAME,

  2    ROUND((b.VALUE -a.VALUE)/1000000,2) "Time(s)"

  3  FROM SYS.DBA_HIST_SYS_TIME_MODEL a,

  4    SYS.DBA_HIST_SYS_TIME_MODEL b

  5  WHERE a.snap_id     = &start_snap_id

  6  AND b.snap_id     = &end_snap_id

  7  AND a.STAT_NAME     = b.STAT_NAME

  8  AND ROUND((b.VALUE -a.VALUE)/1000000,2)>0

  9  ORDER BY 2 DESC;

Enter value for start_snap_id: 34987

Enter value for end_snap_id: 34988


STAT_NAME     Time(s)

---------------------------------------------------------------- ----------

background elapsed time     2720.51

background cpu time     2550.64

RMAN cpu time (backup/restore)     2518.73

DB time       53.21

DB CPU       48.83

sql execute elapsed time       33.66

connection management call elapsed time       10.67

parse time elapsed       2.26

PL/SQL execution elapsed time       1.01

inbound PL/SQL rpc elapsed time .96

hard parse elapsed time  .7

hard parse (sharing criteria) elapsed time .68

PL/SQL compilation elapsed time .02


13 rows selected.

把这个结果和 AWR 报告中的相关部分对比,可以看到是完全吻合的(这个测试数据来自 11.2.0.4 版本):

TimeModelStatistics.jpg


这个SQL的语句如下,缺省的时间记录值是微秒,计算结果转换为秒显示:

SELECT a.STAT_NAME,

  ROUND((b.VALUE -a.VALUE)/1000000,2) "Time(s)"

FROM SYS.DBA_HIST_SYS_TIME_MODEL a,

  SYS.DBA_HIST_SYS_TIME_MODEL b

WHERE a.snap_id                        = &start_snap_id

AND b.snap_id                          = &end_snap_id

AND a.STAT_NAME                        = b.STAT_NAME

AND ROUND((b.VALUE -a.VALUE)/1000000,2)>0

ORDER BY 2 DESC;

了解 AWR 各部分的指标算法,非常有助于我们理解报告的真实表达。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论