自動工作量資料檔案庫(AWR)

wenpingblog發表於2010-01-24

Oracle大型資料庫系統在AIX/UNIX上的實戰詳解》集中討論20, 還是繼續大大大大前天的話題——自動工作量資料檔案庫(AWR),


自動工作量資料檔案庫(AWR)是在Oracle10gR2後續版本中新增的一項具有工程意義的功能項,該功能著力於問題的自我發現並自我調整。AWR來可以收集、處理、並儲存效能統計結果,這種統計資料存放在記憶體中並隨後儲存在資料庫中,這些資料既能在報告中顯示也可以通過檢視查詢。

 

AWR收集和處理的統計資料包括:

  • 物件統計,用於確定資料庫段(表、索引…)的訪問情況
  • 基於時間的統計:資料庫活動統計,這些統計引數通過V$SYS_TIME_MODEL和V_SESS_TIME_MODEL 查詢;
  • 系統統計:基於系統和會話的統計,這些統計資料可以通過V$SYSSTAT和V$SESSTAT 查詢。
  • SQL統計:系統中造成高的負載的SQL,這些SQL使用了長的執行時間和CPU時間;
  • 啟用會話歷史(ASH)統計:啟用會話資訊的歷史記錄,記錄了最近的會話活動歷史

AWR將每小時自動抓取一次效能統計資料,並將抓取的效能快照記錄在工作載荷記錄的代理表中。如果你對Oracle9i較為熟悉,AWR快照和9i中Statspack快照基本類似。和Statspack類似,AWR快照也可以人工創,只是通常不必要這樣做。快照抓取後,抓取的結果將由自動資料庫診斷監視器( ADDM )分析。

在AWR抓取SQL資訊時,AWR將比較以前抓取的SQL語句對效能的影響,並據此有目的的捕捉SQL語句,因此這樣的做法減少了需要捕捉的SQL語句。

自動工作量資料檔案庫(AWR)快照將儲存在資料庫中,這需要儲存空間,其儲存空間佔用取決於下面的幾個因素:

  • 當前連線Oralce的啟用會話的數目,數目越多,則AWR資訊越多;
  • AWR快照抓取間隔,預設一小時抓取一次。抓取頻率增加,則儲存空間佔用越多。
  • 歷史資料的保持期限。顯然,保留時間越長,空間佔用越多。

 

預設的快照捕捉間隔為每小時一次,記錄在資料庫中儲存7天。調整自動工作量資料檔案庫(AWR) 的快照間隔和保持時期,則其空間佔用將降低。但當減少保持期時,Oracle10g中相關的幾個Oracle自我管理的特性可能會受影響,例如自動資料庫診斷監視器(ADDM)、SQL調節顧問、重做顧問、段顧問等。

為了統計結果儘可能客觀、儘可能反映真正的業務載荷分佈情況,我們最好將AWR保持期延伸到業務系統執行的一個完整週期。例如,如果業務系統的作業特點是週一到週五作業務,週六、日進行報表操作,則7天是你完整的一個工作週期。同理,你的工作週期可能是一個月,一個季度。由於儲存介質的造價在目前的資料庫系統環境中已經算是很小的一部分,因此,AWR統計的儲存代價並不很高,以儲存至少一個業務週期為宜。

 

當設定快照捕獲間隔為0時,AWR的自動收集功能關閉,同時,其他的自動管理功能將同時喪失。因此,不是特殊情況,AWR功能要保留。

 

Oracle10g中一種特殊的AWR快照統計資料稱之為“基線”。稱之為特殊的原因是這些AWR快照將長期儲存,並作為本系統執行狀態的“規範”狀態。當系統出現問題時,這些基線將作為效能基準資料。

 

Oracle10g中STATISTICS_LEVEL 初始化引數必須設定為TYPICAL或ALL,這樣AWR將自動抓取快照。如果該引數設定為BASIC,則我們只能手工抓取行效能快照。手工抓取方法是呼叫 DBMS_WORKLOAD_REPOSITORY 包。但是這樣抓出來的統計資料並不全面,因為當STATISTICS_LEVEL 引數值為BASIC時,許多統計資料將不再收集,例如段物件使用統計。顯然地,手工抓取統計資料不是一個好的選擇。

 

與傳統上的Oracle相比,關於物件的優化器統計仍是一樣,仍然是自動獲取,預設情況下不必人為介入管理,該工作作為維護視窗的一種預定的工作由DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC 過程執行。

未完,待續,

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

 

參見:Oracle聯機文件中“效能”部分

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

相關文章