原文: https://www.modb.pro/db/6404
导读: 在 AWR 报告中,Time Model Statistics 记录了数据库用户维度(User Calls)的总时间消耗分布。 这部分信息来自: SYS.DBA_HIST_SYS_TIME_MODEL ,是通过针对前后两个采样点的差值计算得来的。
在 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 版本):
这个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 各部分的指标算法,非常有助于我们理解报告的真实表达。
想了解更多关于数据库、云技术的内容吗?
快来关注“数据和云"、"云和恩墨,"公众号及"云和恩墨"官方网站,我们期待大家一同学习与进步!
墨天轮小程序”DBASK“在线问答,随时解惑,欢迎了解和关注!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31556440/viewspace-2656928/ ,如需转载,请注明出处,否则将追究法律责任。