Oracle10g的ASH及歷史資訊記錄

victorymoshui發表於2011-04-08
效能調整和問題診斷是任何資料庫管理人員必須面臨的最大挑戰和必須完成的重要管理任務。基於管理上的簡化和易用性的努力,Oracle推出了Autometic Database Diagnostic Monitor (ADDM) ,通過ADDM,Oracle試圖使資料庫的維護工作變得更簡單更容易。

AWR是新的管理體系結構的中心元素,它為了發現問題和自我調整,為oracle內部服務元件提供了採集,處理,維護和訪問效能統計資料.
AWR每60分鐘就進行一次快照,所以最近的一次快照可能在一小時之前,這樣AWR就沒有足夠的資訊來進行當前的分析.典型的情況下,當前的分析需要最近的五到十分鐘的詳細資訊.ASH(Active Session History)因此被引入用以保留最近的會話活動的歷史資訊.

因為記錄會話的活動是非常昂貴的,ASH每秒取樣V$session,記錄會話等待的事件.不活動的會話不會被取樣.這個取樣工具是非常有效的,因為它直接訪問oracle10g內部結構.
ASH設計為在記憶體中的滾動的,在需要的時候早期的資訊是會被覆蓋的.ASH可以通過v$active_session_history檢視來訪問.這個例項每個樣本的每個活動會話有一行.
由於資料量巨大,把所有的ASH資料寫到磁碟上是不可接受的。一般是在寫到磁碟的時候過濾這個資料。這是通過MMON和MMNL自動完成的。
SQL> select * from v$sgastat where name like '%ASH%';

POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  ASH buffers                   6291456

注意,ASH buffers的大小按照以下演算法分配:
Min(shared_pool_size*5%,2M*cpu_count)
SQL> select name,value,display_value from v$parameter
  2  where name in ('shared_pool_size','cpu_count');

NAME                           VALUE                DISPLAY_VALUE
------------------------------ -------------------- --------------------
cpu_count                      4                    4
shared_pool_size               125829120            120M

根據這個演算法,系統分配的ASH Buffers為6M.
這些歷史資訊記錄在資料庫中,可以通過v$session_wait_history進行查詢:
SQL> desc v$session_wait_history
Name       Type         Nullable Default Comments 
---------- ------------ -------- ------- -------- 
SID        NUMBER       Y                         
SEQ#       NUMBER       Y                         
EVENT#     NUMBER       Y                         
EVENT      VARCHAR2(64) Y                         
P1TEXT     VARCHAR2(64) Y                         
P1         NUMBER       Y                         
P2TEXT     VARCHAR2(64) Y                         
P2         NUMBER       Y                         
P3TEXT     VARCHAR2(64) Y                         
P3         NUMBER       Y                         
WAIT_TIME  NUMBER       Y                         
WAIT_COUNT NUMBER       Y   

顯然ASH/ADDM是Oracle在管理上的又一巨大提高。

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9390331/viewspace-691920/,如需轉載,請註明出處,否則將追究法律責任。

相關文章