oracle数据库dba_hist等视图中的Delta相关字段介绍

  • Post author:
  • Post category:其他


从10g开始,我们采用awr报告来分析数据库的性能,我们发现增加了很多dba_hist相关的视图,其中基于时间相关的字段delta开始出现,对于我们计算语句的时间消耗很有帮助!

其实Delta 表示第四个希腊字母,大写为Δ,小写为δ,其在数学和科学,表示变量的变化

在Oracle中的Delta number其实是指在采样间隔内,指标的增加值,也就是2个采样间的差值

有Delta相关字段的表为dba_hist_active_sess_history、DBA_HIST_SEG_STAT、DBA_HIST_SQLSTAT

Delta可以省略以前只能用分析函数来计算两个快照间差值办法,可以直接查询

如果部分快照没有捕获对象统计信息,那么用分析函数也无法得到该期间的数值,但是如果有delta字段,可以直接查询

SQL> SELECT * FROM (

2  SELECT SNAP_ID,

3         LOGICAL_READS_TOTAL,

4         LOGICAL_READS_TOTAL –

5         (LAG(LOGICAL_READS_TOTAL) OVER(ORDER BY SNAP_ID)) LOGICAL_READS,

6         LOGICAL_READS_DELTA

7    FROM DBA_HIST_SEG_STAT

8   WHERE OBJ# = 3278293

9     AND INSTANCE_NUMBER=1

10   ORDER BY 1)

11   WHERE ROWNUM<=10;

SNAP_ID LOGICAL_READS_TOTAL LOGICAL_READS LOGICAL_READS_DELTA

———- ——————- ————- ——————-

12315            43227600                             45168

12316            43275936         48336               48336

12321            43415056        139120               29056 <= 没有12320快照

12323            43532160        117104               69536 <= 没有12322快照

12325            43710256        178096              103760 <= 没有12324快照

12326            43771904         61648               61648

12327            43815680         43776               43776

12328            43871648         55968               55968

12332            44220256        348608               90016 <= 没有12332快照

12333            44296544         76288               76288

在11g中,又为ASH增加了delta字段(V$ACTIVE_SESSION_HISTORY & DBA_HIST_ACTIVE_SESS_HISTORY)

有2组:

1.时间模型统计

TM_DELTA_TIME         一次统计间隔

TM_DELTA_CPU_TIME     在这个间隔内,CPU时间

TM_DELTA_DB_TIME      在这个间隔内,DB时间

因为ASH采样的粒度是1秒,但是进程并不是在1s内都ACTIVE的。该统计的粒度是微秒(百万分之一秒)

TM_DELTA_TIME – TM_DELTA_DB_TIME = INACTIVE TIME

TM_DELTA_DB_TIME – TM_DELTA_CPU_TIME = WAIT TIME

2.IO&网络统计

DELTA_TIME

DELTA_READ_IO_REQUESTS

DELTA_WRITE_IO_REQUESTS

DELTA_READ_IO_BYTES

DELTA_WRITE_IO_BYTES

DELTA_INTERCONNECT_IO_BYTES

统计时间内,物理读/写/心跳流量高的SQL

SELECT SQL_ID,

SUM(DELTA_READ_IO_REQUESTS),

SUM(DELTA_WRITE_IO_REQUESTS),

SUM(DELTA_READ_IO_BYTES),

SUM(DELTA_WRITE_IO_BYTES),

SUM(DELTA_INTERCONNECT_IO_BYTES)

FROM V$ACTIVE_SESSION_HISTORY

GROUP BY SQL_ID

ORDER BY 2 DESC

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-1627285/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29371470/viewspace-1627285/