學用ORACLE AWR和ASH特性(1)-ASH和AWR的故事
一、ASH和AWR的故事
1.1 關於ASH
我們都知道,使用者在ORACLE資料庫中執行操作時,必然要建立相應的連線和會話,其中,所有當前的會話資訊都儲存在動態效能檢視V$SESSION中,透過該檢視,DBA可以檢視使用者實際執行的操作,或者當前的等待事件等。通常這部分資訊是調優過程中的關鍵資訊,不過,一旦連線斷開。會話資訊就會被同時從V$SESSION及其它相關檢視中清除,也就是說,使用者執行完操作走人,而你(DBA),如果不能在當前逮到他,過了這點,就不知道它曾經做過什麼了。
10g 版本中,ORACLE又新增加了一個檢視(其它是若干,不過我們們還是以session為引子說):V$ACTIVE_SESSION_HISTORY,看名字就知道,就是活動會話的歷史記錄,這下,即使使用者操作完成後,斷開了連線也不怕,因為其會話的情況已經被記錄了下來,這項特性就是ASH了,全稱與檢視名相同,正是:ACTIVE SESSION HISTORY。
ASH 每秒鐘收集一次當前處於非空閒等待事件的、活動狀態的、session的資訊,並儲存在V$ACTIVE_SESSION_HISTORY檢視中,我們(應該以及必須)知道,動態效能檢視其實上是ORACLE自行構造的一堆存在於SGA記憶體區的虛表,就是說,ASH的資料是儲存在記憶體裡的,實際上,ORACLE分配給ASH的空間並不是無限大(更何況ORACLE自身管理的記憶體空間也不是無限大),檢視ASH可供使用的記憶體空間,可以透過如下SQL:
SQL> select pool, name, bytes/1024/1024 Mb From v$sgastat where name like 'ASH %';
POOL NAME Mb
------------ -------------------------- ---------------
shared pool ASH buffers 15.5直白的講 ,V$ACTIVE_SESSION_HISTORY中能夠記錄多少會話資訊, 一方面取決於該資料庫的SGA 分配給ASH buffers的大小 ,另一方面取決於資料庫的啟動和關閉(重啟資料庫時將重構SGA記憶體區)。這兩方面的因素制約了V$ACTIVE_SESSION_HISTORY中能夠儲存的會話資訊的能力,做為DBA,我們肯定是希望ASH儘可能多的保留關於會話的資訊,但目前來看單純依靠V$ACTIVE_SESSION_HISTORY肯定無法實現這點,那怎麼辦呢?別擔心,ORACLE又提供了AWR特性,ASH收集到的會話資訊,是做為AWR中快照資訊的一部分,被儲存到了硬碟上。
1.2 關於AWR
AWR 是 Oracle 10g 版本 推出的新特性, 全稱叫Automatic Workload Repository-自動負載資訊庫。 談到這一特性呢,不得不先提Statspack,Statspack稱的上是ORACLE世界裡的老人了,不過畢竟年歲大了,腿腳雖然還算靈便,但效率不那麼高了,用時髦話講就是不能適應時代發展步伐,不能緊跟時代潮流,不能保持做為一名優秀黨員的先進性,始終堅持帶三個表的為DBA服務。但是,說到底Statspack還是為了黨國事業奮鬥了一輩子,在黨內還是有勢力有威信有地位有影響的四有老人,還有餘熱可以發揮, 雖然其在統計實時性方面,表現已不足以滿足DBA多變的需求,依然 不能一下就將其拿下, 因此 ORACLE 採取漸進方式先 推出了AWR,說是輔助Statspack工作,其實明眼人一看就明瞭,這是新指定的接班人哪。
提示:
關於Statspack的學和用請參考三思筆記相關章節:AWR 與前輩Statspack在職業定位方面是相同的,都是負責收集、處理並維護效能統計資訊,用於檢查和分析效能問題(甚至生成的報告格式都非常接近),AWR生成的統計資料即可以透過V$檢視和DBA_*資料字典檢視,也可以透過指令碼來生成相應報表。談到相比Statspack,AWR究竟在哪些方面有所提升呢,撿主要的講就兩條:自動+實時,至於功能上的些許提高,不過是因為AWR年輕腿腳利索罷了。
提示:
進入10g版本,ORACLE更加註重強調使用EM(Enterprise Manager)管理各項操作,不過考慮效能、通用度等各方面因素,這裡三思仍然主要透過指令碼操作來使用AWR和ASH的各項功能。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2139995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學用ORACLE AWR和ASH特性(8)-生成ASH報表Oracle
- 學用ORACLE AWR和ASH特性(7)-AWR的幾個幫Oracle
- oracle awr ashOracle
- 學用ORACLE AWR和ASH特性(4)-生成指定SQL的統計報表OracleSQL
- Oracle10g ASH and AWROracle
- ASH, AWR , 等待事件事件
- working with ASH and AWR
- AWR、ASH、ADDM和顧問程式
- 學用ORACLE AWR和ASH特性(3)-生成指定資料庫例項的統計報表Oracle資料庫
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- Oracle AWR與ASH效能報告深入解析Oracle
- oracle效能調憂工具AWR,ASH,ADDMOracle
- ASH可以生成指定的session或sql_id的報告,ASH和AWR的區別SessionSQL
- statspack、awr、addm,ash影片分享
- ASH、AWR、ADDM區別聯絡
- statspack、awr、addm,ash視訊分享
- Oracle10g AWR及ASH詳解(final)Oracle
- Oracle效能調整的三把利劍--ASH,AWR,ADDMOracle
- ASH buffers 資料取樣到AWR的問題
- 轉載詳細的Oracle ASH/AWR介紹及報告分析Oracle
- In 10g/11g,working with ASH and AWR
- oracle實用sql(9)--批量生成一天的ash報告或awr報告OracleSQL
- 10G新特性筆記之AWR,ASH,METRIC,ALERT&ADVISOR筆記
- Oracle ASH和Session Tracing(ZT)OracleSession
- oracle ASHOracle
- Oracle AWR與ASH效能報告深入解析-核心引數詳解-手操-圖文-可下載Oracle
- 【kingsql分享】ASH的研究和分析SQL
- oracle 10G特性之awrOracle 10g
- oracle特性之AWR報告2Oracle
- ORACLE10G AWR使用和分析Oracle
- ASH(Active Session History)——概述(1)!Session
- ORACLE AWROracle
- Oracle AWR ---Oracle
- oracle awrOracle
- Oracle AWR速查Oracle
- oracle,metric,awrOracle
- 【Oracle】AWR analyseOracle