eygle Eygle.
FAQ 2019-09-10

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

在 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 各部分的指标算法,非常有助于我们理解报告的真实表达。

By eygle 2019-09-10 12:31 评论 (0)
eygle
eygle

前Oracle ACE Director,云和恩墨创始人。技术为骨,历史为脉,人文为魂。

返回首页