oracle資料庫dba_hist等檢視中的Delta相關欄位介紹

Appleses發表於2016-01-30

    從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/28628435/viewspace-1984405/,如需轉載,請註明出處,否則將追究法律責任。

相關文章