what和how和where有什麼區別(WHAT什麼是AWR)
2023-10-14 17:03:20 1
what和how和where有什麼區別?現在我們稍微詳細地了解一下剛才所說內容,今天小編就來說說關於what和how和where有什麼區別?下面更多詳細答案一起來看看吧!

what和how和where有什麼區別
現在我們稍微詳細地了解一下剛才所說內容。
1. ash佔用的內存大小
ASH的採集信息保存在內存中,在舊的信息被採樣到AWR中後,可被新採集的信息覆蓋,重啟oracle後該信息被清除。分配給ASH的內存大小可以查詢到:
SQL> select pool, name, bytes/1024/1024 From v$sgastat where name like '%ASH %';
POOL NAME BYTES/1024/1024
------------- ------------- ---------------
shared pool ASH buffers 2
2. AWR更正
為了便於描述和理解,在第一部分中,我們說AWR就是保存ASH中的信息。
其實,AWR記錄的信息不僅是ASH,還可以收集到資料庫運行的各方面統計信息和等待信息,用以診斷分析。
AWR的採樣方式是,以固定的時間間隔為其所有重要的統計信息和負載信息執行一次採樣,並將採樣信息保存在AWR中。
可以這樣說:ASH中的信息被保存到了AWR中的視圖wrh$_active_session_history中。ASH是AWR的真子集。
3. mmon進程與mmnl進程
快照由一個稱為 MMON 的新的後臺進程(及其從進程)以及MMNL後臺進程自動地每隔固定時間採樣一次。我們先來看一下10g的概念指南中對這兩個新增加的後臺進程的介紹:
* MMON進程負責執行多種和管理相關(manageability-related)的後臺任務,例如:
* 當某個測量值(metrics)超過了預設的限定值(threshold value)後提交警告
* 創建新的 MMON 隸屬進程(MMON slave process)來進行快照(snapshot)
* 捕獲最近修改過的 SQL 對象的統計信息
* MMNL進程負責執行輕量級的且頻率較高的和可管理性相關的後臺任務,例如捕獲會話歷史信息,測量值計算等。
AWR的採樣工作由MMON進程每個1小時執行一次,ASH信息同樣會被採樣寫出到AWR負載庫中。雖然ASH buffer被設計為保留1小時的信息,但很多時候這個內存是不夠的,當ASH buffer寫滿後,另外一個後臺進程MMNL將會主動將ASH信息寫出。
4. SYSAUX表空間
這些採樣數據都存儲在SYSAUX表空間中,並且以WRM$_* 和 WRH$_*的格式命名。前一種類型存儲元數據信息(如檢查的資料庫和採集的快照),後一種類型保存實際採集的統計數據。
SQL> select table_name from dba_tables where table_name like 'WRM$%';
TABLE_NAME
-----------------------
WRM$_WR_CONTROL
WRM$_SNAP_ERROR
WRM$_SNAPSHOT
WRM$_DATABASE_INSTANCE
WRM$_BASELINE
當SYSAUX表空間滿後,AWR將自動覆蓋掉舊的信息,並在警告日誌中記錄一條相關信息:
ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_3533490838_1522 by 128 in tablespace SYSAUX
5. 採樣頻率和保留時間
可以通過查詢視圖dba_hist_wr_control或(wrm$_wr_control)來查詢AWR的採樣頻率和保留時間。默認為每1小時採樣一次,採樣信息保留時間為7天。
SQL> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---- ------------- ----------- ----------
1148 00000 00:1 00007 00:0 DEFAULT
SQL> select DBID, SNAP_INTERVAL, SNAPINT_NUM, RETENTION from wrm$_wr_control;
DBID SNAP_INTERVAL SNAPINT_NUM RETENTION
---------- ------------------ ----------- --------------------
1160732652 00000 01:00:00.0 3600 00007 00:00:00.0
6. 採樣數據量
由於數據量巨大,把所有ASH數據寫到磁碟上是不可接受的。一般是在寫到磁碟的時候過濾這個數據,寫出的數據佔採樣數據的10%,寫出時通過direct-path insert完成,儘量減少日誌生成,從而最小化資料庫性能的影響。
7. 初始化參數statistics_level
AWR的行為受到參數STATISTICS_LEVEL的影響。這個參數有三個值:
* BASIC:awr統計的計算和衍生值關閉.只收集少量的資料庫統計信息.
* TYPICAL:默認值.只有部分的統計收集.他們代表需要的典型監控oracle資料庫的行為.
* ALL : 所有可能的統計都被捕捉. 並且有作業系統的一些信息.這個級別的捕捉應該在很少的情況下,比如你要更多的sql診斷信息的時候才使用.
,