關於Oracle中ASH功能的特別說明,oracle10個/11g的新特點

wenpingblog發表於2010-01-13

《Oracle大型資料庫系統在AIXUNIX上的實戰詳解》集中討論17, 還是繼續大前天的話題——對Oracle效能資料的獲得。

 

在Oracle10gR2以後版本中新增了經過完善的ASH功能。所謂ASH,就是自動的會話歷史紀錄,它紀錄了每時每刻啟用會話的活動資訊,這些資訊記錄在SGA的一個迴圈使用的緩衝區中。任何使用者的連線,只要該使用者當前不處於閒置(idle類)狀態,那麼,該連線就會被記錄。我們可以通過V$ACTIVE_SESSION_HISTORY 檢視來檢視這些會話的CPU使用方面的資訊。

 

那麼究竟V$ACTIVE_SESSION_HISTORY中記錄了那些資訊呢? 在該檢視中,每個會話的歷史紀錄佔若干行,每次取樣佔一行。由於這些資訊被臨時性迴圈儲存在快取中,這個快取結構的大小是有限的,當系統處於繁忙狀態時,這部分記憶體結構迴圈將使用的更快,因此,這導致快取中記錄的啟用會話資訊更少,從時間上看,則記載的時間更短,這取決於資料庫活動程度。

 

不僅如此,會話歷史紀錄將定期存放到硬碟中,並作為自動工作量資料檔案庫(AWR)的一部分。由於該檢視的內容可能很大,尤其在系統繁忙的狀態下,因此可能僅有部分會話資訊被儲存。

 

由於ASH僅儲存啟用會話資訊,因此被捕獲的資料將簡短但有用,避免大量的統計資料造成的視聽的混淆。一般而言,如果檢視較為當前的會話歷史記錄,可以通過V$ACTIVE_SESSION_HISTORY 檢視獲得。如果檢視歷史資料,則檢視DBA_HIST_ACTIVE_SESS_HISTORY 檢視。有了這些資訊,我們就可以探尋到資料庫“過去”的狀態,包括下列常用的資訊:

  • SQL語句的SQL識別符號
  • 物件標號、檔案標號、塊標號
  • 等待事件和對應引數
  • 會話識別符號和會話序列號
  • 模組名和動作名
  • 會話的客戶識別符號
  • 服務雜湊識別符號

 

未完,待續,

參見: http://www.usedb.cn/

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

相關文章