oracle一些效能檢視的解釋
timed_statistics引數:用於決定是否收集相關的時間引數,true為收集。如果該引數設為false,則等待事件相關檢視也就無法收集到資料。
SQL> SHOW PARAMETER timed_statistics;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
timed_statistics boolean TRUE
如果statistics_level設定為TYPICAL或ALL,那麼timed_statistics該引數為true;如果statistics_level設定為BASIC,那麼timed_statistics該引數為false。
SQL> SHOW PARAMETER statistics_level
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
一、v$system_event檢視介紹
1.欄位說明
DESC v$system_event
Name Type
----------------- ------------
EVENT VARCHAR2(64) --等待的事件
TOTAL_WAITS NUMBER --總等待次數
TOTAL_TIMEOUTS NUMBER --等待超時次數
TIME_WAITED NUMBER --總等待時間(時間毫秒,1/100秒)
AVERAGE_WAIT NUMBER --平均等待時間(總等待時間/總等待次數)
TIME_WAITED_MICRO NUMBER --總等待時間(時間微秒,1/1000000秒)
EVENT_ID NUMBER --標識等待事件id
WAIT_CLASS_ID NUMBER --標識等待事件型別id
WAIT_CLASS# NUMBER --該等待型別的數量
WAIT_CLASS VARCHAR2(64) --等待型別名稱
2.等待事件型別(WAIT_CLASS)
SELECT DISTINCT wait_class FROM v$system_event;--或直接檢視v$system_wait_class檢視
WAIT_CLASS
-------------
Concurrency --等待用於鎖定的資料庫資源,如閂
System I/O --後臺程式I/O的等待,包括db file parallel write事件的資料庫寫程式後臺程式(DBWR)等待。還包括與歸檔有關的等待和重做日誌讀和寫等待
User I/O --包括db file sequential read和db file scattered read事件
Configuration --如checkpoint completed等待事件
Other --雜項等待
Application --由應用程式碼導致的等待
Idle --空閒等待事件表示在會話不活動時發生的等待,如 “SQL*Net message from client”等待事件
Commit --由單個等待事件log file sync組成,它是一個由資料庫中的提交導致的等待
Network --網路傳遞訊息過程中的發生等待
log file sync(日誌檔案同步): log file sync 等待時間和事務中指(提交或回滾)相關;
當程式在log file sync事件上花費大量時間時,這通常表明過多的提交或短事務。
SELECT event, time_waited, average_wait,total_waits,f.WAIT_CLASS_ID,f.WAIT_CLASS#,f.WAIT_CLASS
FROM v$system_event f
WHERE wait_class NOT IN ('Idle')
ORDER BY time_waited DESC;
二、v$system_wait_class檢視
1.檢視欄位說明
SQL> DESC v$system_wait_class --10g新增
Name Type
------------- ------------
WAIT_CLASS_ID NUMBER --等待型別id
WAIT_CLASS# NUMBER --該等待型別的數量
WAIT_CLASS VARCHAR2(64) --等待型別名稱
TOTAL_WAITS NUMBER --該等待型別事件發生時所等待的時間
TIME_WAITED NUMBER --所有會話用於等待的時間
2.v$system_wait_class檢視和v$system_event檢視比較
v$system_wait_class檢視是10g新增的,該檢視是對型別等待時間的統計。v$system_event檢視可以與v$system_wait_class檢視結合檢視。
v$system_wait_class檢視和v$system_event檢視的來源不同,可用v$fixed_view_definition檢視檢視檢視的具體定義,如下所示:
SELECT * FROM v$fixed_view_definition WHERE view_name='V$SYSTEM_EVENT';
SELECT * FROM v$fixed_view_definition WHERE view_name='GV$SYSTEM_EVENT';
SELECT * FROM v$fixed_view_definition WHERE view_name='V$SYSTEM_WAIT_CLASS';
SELECT * FROM v$fixed_view_definition WHERE view_name='GV$SYSTEM_WAIT_CLASS';
三、v$session_event檢視
1.欄位說明
SQL> DESC v$session_event
Name Type
----------------- ------------
SID NUMBER --會話id
EVENT VARCHAR2(64) --等待事件
TOTAL_WAITS NUMBER --該會話等待次數
TOTAL_TIMEOUTS NUMBER --該會話等待超時次數
TIME_WAITED NUMBER --該會話總等待時間(時間毫秒,1/100秒)
AVERAGE_WAIT NUMBER --該會話平均等待時間(總等待時間/總等待次數)
MAX_WAIT NUMBER --該會話等待時間最大值
TIME_WAITED_MICRO NUMBER --該會話總等待時間(時間微秒,1/1000000秒)
EVENT_ID NUMBER --事件ID
WAIT_CLASS_ID NUMBER --等待型別ID
WAIT_CLASS# NUMBER --該等待型別的數量
WAIT_CLASS VARCHAR2(64) --等待型別名稱
2.v$session_event檢視與v$system_event檢視比較
v$session_event檢視:會話級的統計
v$system_event檢視:系統級的統計
四、v$session_wait_class檢視
與v$system_wait_class相比多了sid和serial#欄位,v$session_wait_class檢視表示某一會話的等待時間。
五、v$session_wait檢視
1.欄位說明
SQL> DESC v$session_wait;
Name Type
--------------- ------------
SID NUMBER --會話id
SEQ# NUMBER --標識當前或最新的等待序列號
EVENT VARCHAR2(64) --當前等待事件或最後一次等待事件
P1TEXT VARCHAR2(64) --第一個等待引數的描述
P1 NUMBER --第一個等待引數(十進位制)
P1RAW RAW(4) --第一個等待引數(十六進位制)
P2TEXT VARCHAR2(64) --第二個等待引數的描述
P2 NUMBER --第二個等待引數(十進位制)
P2RAW RAW(4) --第二個等待引數(十六進位制)
P3TEXT VARCHAR2(64) --第三個等待引數的描述
P3 NUMBER --第三個等待引數(十進位制)
P3RAW RAW(4) --第三個等待引數(十六進位制)
WAIT_CLASS_ID NUMBER --等待事件型別ID
WAIT_CLASS# NUMBER --該等待事件數量
WAIT_CLASS VARCHAR2(64) --等待事件名稱
WAIT_TIME NUMBER 該欄位已廢棄,可透過SECONDS_IN_WAIT和STATE欄位替代 (具體含義,0代表正在等待;>0表示最後一次等待的時間,單位為百分之一秒;-1表示等待時間小於百分之一秒;-2表示引數TIMED_STATISTICS被設定為false)
SECONDS_IN_WAIT NUMBER --如果該會話處於等待狀態,則表示當前等待的總時間;如果非等待狀態,則表示自最後一次等待以來的總時間
STATE VARCHAR2(19) --其值可為 WAITING,WAITED UNKNOWN TIME,WAITED SHORT TIME ,WAITED KNOWN TIME
state值的具體含義:WAITING表示會話正在等待;
WAITED UNKNOWN TIME表示最後一次等待時間不知,即TIMED_STATISTICS被設定為false;
WAITED SHORT TIME表示最後一次等待時間少於百分之一秒;
WAITED KNOWN TIME表示最新一次等待時間,可透過wait_time列檢視。即該等待時間正好由等待狀態得到資源轉為執行狀態。
2.注意事項
1)oracle11g,在該檢視中新增了WAIT_TIME_MICRO,TIME_REMAINING_MICRO,TIME_SINCE_LAST_WAIT_MICRO欄位。而SECONDS_IN_WAIT已廢棄,用
WAIT_TIME_MICRO and TIME_SINCE_LAST_WAIT_MICRO替代。
TIME_REMAINING_MICRO欄位含義:為0表示當前等待超時;>0表示當前等待還需等待的時間;-1表示當前等待將無限制地等待;null表示該會話當前無等待
2)p1,p2,p3引數代表的含義可以透過v$event_name檢視的PARAMETER1,PARAMETER2,PARAMETER3查詢。不過v$session_wait檢視本身中的P1TEXT,
P2TEXT,P3TEXT已經對p1,p2,p3進行了說明,及P1TEXT,P2TEXT,P3TEXT欄位值與PARAMETER1,PARAMETER2,PARAMETER3一樣。
六、v$session檢視
該檢視包含了v$session_wait檢視的所有欄位。該檢視記錄了每個會話的具體資訊。
獲取不同使用者會話所面臨的等待型別及他們所執行的sql語句文字,如下指令碼:
SELECT s.username, t.sql_text, s.event
FROM v$session s, v$sqltext t
WHERE s.sql_hash_value = t.hash_value
AND s.sql_address = t.address
AND s.type <> 'BACKGROUND'
ORDER BY s.sid, t.hash_value, t.piece;
七、v$sysmetric檢視
這是一個顯示最近時間間隔的系統度量值,時間間隔為60秒。透過這個檢視也可以檢視在一個短期間隔內的
Buffer Cache Hit Ratio,Memory Sorts Ratio,Redo Allocation Hit Ratio。
v$waitclassmetric:顯示最近60秒時間間隔中等待類的度量值。此檢視最多儲存一個小時的資訊。
SELECT * FROM v$waitstat
v$session_wait_history
該檢視儲存每個活動會話的最後10個等待事件的有關資訊。如v$session和v$session_wait檢視只顯示最近一次等待的資訊。
SELECT seq#, event, wait_time, p1, p2, p3
FROM v$session_wait_history WHERE sid = 140
ORDER BY seq#;
v$active_session_history:當前的活動會話歷史
--查詢導致最多等待的物件及這些物件在最後15分鐘內等待的事件型別
SELECT o.object_name,
o.object_type,
a.event,
SUM(a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, dba_objects o
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.current_obj# = o.object_id
GROUP BY o.object_name, o.object_type, a.event
ORDER BY total_wait_time;
--列出資料庫中最後15分鐘內最重要的等待事件
SELECT a.event,
SUM(a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
GROUP BY a.event
ORDER BY total_wait_time DESC;
--等待最多的使用者
SELECT s.sid,
s.username,
SUM(a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a,v$session s
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.session_id = s.sid
GROUP BY s.sid,s.username
ORDER BY total_wait_time DESC;
--確定等待最多的sql
SELECT a.user_id,
s.sql_text,
d.username,
SUM(a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, v$sqlarea s, dba_users d
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.sql_id = s.sql_id
AND a.user_id = d.user_id
GROUP BY a.user_id, s.sql_text, d.username;
dba_hist_active_sess_history:每60分鐘,MMON後臺程式都要重新整理過濾了得ASH資料到磁碟,使其成為按小時的AWR快照的一部分。若ASH緩衝區已滿,
則MMML後臺程式進行資料的重新整理。ASH資料被重新整理到磁碟後,就不能在v$active_session_history檢視中看到它了。此時要檢視歷史資料,就必須透過
dba_hist_active_sess_history檢視。
段級動態效能檢視:使用它們可以找出哪些表和索引正在使用大量資源或具有大量的等待。
v$segstat_name
v$segstat
v$segment_statistics
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-1061301/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle普通檢視和物化檢視的區別Oracle
- 11、Oracle中的檢視Oracle
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)Oracle
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 檢視oracle臨時表空間佔用率的檢視Oracle
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)2Oracle
- Oracle OCP(24):檢視Oracle
- Oracle 如何高效的檢視官方文件Oracle
- oracle 檢視錶空間Oracle
- 檢視Linux硬體的一些命令Linux
- win10怎麼檢視電腦效能_win10系統檢視效能的方法Win10
- Oracle檢視執行計劃的命令Oracle
- Oracle物化檢視的建立及使用(二)Oracle
- Oracle物化檢視的建立及使用(一)Oracle
- 4.2.8 檢視元件的Oracle重啟配置元件Oracle
- oracle檢視被鎖的表和解鎖Oracle
- Oracle 檢視可以DML操作的條件Oracle
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- 檢視伺服器的磁碟io效能伺服器
- Oracle檢視歷史TOP SQLOracleSQL
- oracle檢視物件DDL語句Oracle物件
- 檢視ORACLE中鎖定物件Oracle物件
- openGausspostgreSQL資料庫效能檢視SQL資料庫
- oracle db link的檢視建立與刪除Oracle
- 檢視oracle被鎖的表是誰鎖的Oracle
- 檢視mysql執行狀態的一些sqlMySql
- ORACLE 檢視IP,解析機器名Oracle
- Oracle相關資料字典檢視Oracle
- Oracle常用檢視錶結構命令Oracle
- 19 Oracle Data Guard 相關檢視Oracle
- ORACLE常見檢視和表整理Oracle
- 【PDB】Oracle跨PDB檢視查詢Oracle
- oracle 歷史檢視檢視,看這一篇就夠了Oracle
- 檢視Oracle的redo日誌切換頻率Oracle
- 關於Oracle dba_free_space 檢視的研究Oracle
- Oracle錶的歷史統計資訊檢視Oracle
- 8.1關於動態效能檢視
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- Oracle常用名詞解釋Oracle