溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行ORACLE AWR性能報告和ASH性能報告的解讀

發(fā)布時間:2021-11-30 09:27:50 來源:億速云 閱讀:821 作者:柒染 欄目:關(guān)系型數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)如何進行ORACLE AWR性能報告和ASH性能報告的解讀,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

數(shù)據(jù)庫的性能分析可分為會話級和系統(tǒng)級:如果確定某個會話存在性能問題,最常見的分析方式是對這個會話做一個SQL_TRACE或者10046事件,通過分析trace文件來定位問題所在。如果無法確定哪個會話性能有問題,就需要從實例級別來分析問題所在。

awr是oracle 10g下提供的一種性能收集和分析工具,它能夠提供一個時間段內(nèi)整個系統(tǒng)資源使用情況的報告。
awr默認收集最近7天的采集信息,也可通過以下方法修改快照收集時間間隔信息。
如何進行ORACLE AWR性能報告和ASH性能報告的解讀

awr由運行在oracle的后臺進程自動、定期收集數(shù)據(jù)庫的性能數(shù)據(jù)并保存,每一個小時,awr都生成一次性能數(shù)據(jù)快照,為DBA提供某個時刻數(shù)據(jù)庫性能分析的數(shù)據(jù)信息。
執(zhí)行$ORACLE_HOME/RDBMS/ADMIN/awrrpt.sql生成awr報告。

awr報告要根據(jù)系統(tǒng)實際情況(OLAP or OLTP)來進行分析,例如對于一個OLTP系統(tǒng),library hit和buffer hit應(yīng)比較關(guān)注。而對于OLAP不甚重要。

awr報告不需要全面閱讀,全面閱讀可能思路會更亂,如果性能問題由某個原因引起,那么會在報表的各個部分都會有相應(yīng)呈現(xiàn)。

在RAC結(jié)構(gòu)的數(shù)據(jù)庫里做性能分析,通常需要對每個實例做一個awr性能報告,原因是無法知道每個用戶連接到哪個實例當(dāng)中去。

對于一個系統(tǒng),需要多做幾次awr報告,以便得到所有時間段的系統(tǒng)性能數(shù)據(jù)。在查看awr報告時,如果了解數(shù)據(jù)庫業(yè)務(wù),應(yīng)該有針對性
的看一些可能存在性能問題的部分,并結(jié)合業(yè)務(wù)的實際情況來判斷;也可以從TOP5的等待事件觸發(fā),按照等待事件的類型,
到相應(yīng)的部分獲取詳細的信息來對系統(tǒng)性能問題作出判斷。

通過awr報告可以:1)查看系統(tǒng)的負載和繁忙程度;2)查看系統(tǒng)的瓶頸,發(fā)生的等待事件;3)查看可優(yōu)化的sql;

一、Report Summary:
1、SESSIONS:實例連接的會話數(shù),數(shù)據(jù)庫大概的并發(fā)用戶數(shù);
2、cursors/session:每個會話平均打開的游標(biāo)數(shù);
3、DB time:用戶操作花費的時間的合集,包括CPU時間和等待事件;
4、cache sizes:列舉awr在性能采集開始和結(jié)束的時候,數(shù)據(jù)緩沖池和共享池的大小,可以了解系統(tǒng)內(nèi)存消耗的變化,可以判斷SGA的內(nèi)存分配是否合理;
5、load profile:數(shù)據(jù)庫資源負載的一個明細列表,用來判斷系統(tǒng)的繁忙程度。分割為每秒鐘的資源負載和每個事務(wù)的資源負載情況。
6、Instance Efficiency Percentages:內(nèi)存效率的統(tǒng)計信息,對于OLTP系統(tǒng),應(yīng)盡可能的接近100%。如果哪個數(shù)據(jù)偏低,就要做相關(guān)的分析研究。
    1)buffer nowait:非等待方式獲取數(shù)據(jù)庫;
    2)redo nowait:非等待方式獲取redo數(shù)據(jù);
    3)buffer hit:內(nèi)存數(shù)據(jù)塊命中率;
    4)in-memory sort:數(shù)據(jù)塊在內(nèi)存中排序的百分比;
    5)library hit:共享池中sql解析的命中率;
    6)execute to parse:執(zhí)行次數(shù)對分析次數(shù)的百分比;
    7)latch Hit:latch命中率百分比;
    8)parse cpu to parse elapsed:解析總時間中消耗CPU的時間百分比;
    9)non-parse cpu:cpu非分析時間在整個cpu時間的百分比;
7、TOP 5 TIMED EVENTS:查看最高5個耗費時間及等待事件,要聯(lián)系報告的采集周期來看耗費時間是否合理。一般來說,CPU time出現(xiàn)在TOP5中的第一位,并且消耗時間占總時間的大部分比例??梢哉f明系統(tǒng)在正常運行。
對于ORACLE常見的等待事件可參考http://blog.itpub.net/29371470/viewspace-1063994/
以上這部分就是awr報告的總體概要,是需要重點關(guān)注的部分,根據(jù)這些信息可以知道等待時間比較長的事件,然后根據(jù)這些事件,去下面具體的部分查找問題原因。

二、Wait Events Statistics:
1、Time Model Statistics列出了各種操作占用的數(shù)據(jù)庫時間比例;
2、Foreground Wait Class列出了等待事件類型,可以看到等待時間最長的事件;
3、Foreground Wait Events是第一部分TOP 5 TIMED EVENTS的詳細部分;
4、Background Wait Events實例的后臺進程等待事件;

三、SQL Statistics:
1、SQL ordered by Elapsed Time:按照sql的執(zhí)行時間從長到短的排序;
   1)CPU time:sql消耗的CPU時間;
   2)elapsed time:sql執(zhí)行時間;
   3)executions:sql執(zhí)行的次數(shù);
   4)elapsed per exec:每次執(zhí)行消耗的執(zhí)行時間;
2、SQL ordered by CPU Time:按照sql的CPU時間從長到短排序:
3、SQL ordered by User I/O Wait Time:
4、SQL ordered by Gets:按照sql獲取的內(nèi)存數(shù)據(jù)塊的數(shù)量排序: 
5、SQL ordered by Reads按照sql執(zhí)行物理讀排序: 
6、SQL ordered by Physical Reads (UnOptimized):
7、SQL ordered by Executions:按照sql的執(zhí)行次數(shù)的排序;
8、SQL ordered by Parse Calls:按照sql被分析次數(shù)(不區(qū)分軟解析還是硬解析)的信息排序;
9、SQL ordered by Version Count:sql產(chǎn)生多版本的信息;version count是sql的版本數(shù);
以上指標(biāo)孤立起來看都沒有實際意義,需要看系統(tǒng)的類型和性能問題是什么方面,有側(cè)重的進行分析。例如SQL ordered by Executions和SQL ordered by Parse Calls對OLTP比較重要,而OLAP系統(tǒng)不需要太關(guān)注。

四、Instance Activity Statistics:
cpu used by this session:oracle消耗的cpu單位,可以看出cpu的負載情況;如果total為1000,per sec 為80,cpu個數(shù)為2;
那么就是整個統(tǒng)計周期消耗了1000個cpu單位,每秒鐘消耗了80個cpu單位,對應(yīng)實際的時間是80/100=0.8秒;每秒鐘每個cpu消耗80/2=40個cpu單位;每秒鐘中每個cpu處理使用的時間是40/100=0.4秒。

五、IO Stats:
Tablespace IO Stats:表空間的IO性能統(tǒng)計;
File IO Stats:
   1)reads:發(fā)生了多少次物理讀;
   2)writes:發(fā)生了多少次寫;
   3)Av reads:每秒鐘物理讀的次數(shù);
   4)Av Rd:平均一次物理讀的時間;
   5)Blks/Rd:每次讀多少個數(shù)據(jù)塊;
   6)Av writes:每秒鐘寫的次數(shù);
   7)buffer waits:獲取內(nèi)存數(shù)據(jù)塊等待的次數(shù);
segments by logical reads和segment by physical reads從對象角度來展現(xiàn)了IO情況,分析這兩部分信息,可以具體知道哪些對象的訪問導(dǎo)致了IO性能下降。


ASH側(cè)重于當(dāng)前數(shù)據(jù)中活動會話的信息分析,被長期保存在數(shù)據(jù)字典中,可以通過查詢視圖V$ACTIVE_SESSION_HISTROY來得到。
運行腳本為$ORACLE_HOME/RDBMS/ADMIN/ashrpt.sql
使用同目錄下的ashrpti.sql腳本可以生成其他數(shù)據(jù)庫或者實例的ASH性能報告,也可以對一個session ID、SQL_ID、某個程序或者某一類等待事件
來生成ASH報告,如下圖:
如何進行ORACLE AWR性能報告和ASH性能報告的解讀
ASH報告分析如下:
DATA SOURCE如果來自DBA_HIST_ACTIVE_SESS_HISTORY,那么說明這些信息來自于AWR的快照;如果來自于V$ACTIVE_SESSION_HISTORY,那么
視圖的信息就意味著性能數(shù)據(jù)存放到內(nèi)存中的信息。
1、top user events:用戶會話的等待事件的信息;
2、top event p1/p2/p3 values:等待事件的具體描述;
3、top service/module:按照活動頻率列出前五位的應(yīng)用程序;
4、top sql command types:列出了數(shù)據(jù)庫中活動最頻繁的操作;
5、top sql statements:按活動頻繁程度列出sql語句;
6、top session:列出活動最頻繁的會話或進程;
7、top sessions running PQs:列出活動頻繁的前幾位并行執(zhí)行的會話信息;
8、top DB files:IO最頻繁的數(shù)據(jù)文件;
9、activity over time:按照一個時間間隔對采集時間周期分組后,生成的每個時間間隔里的等待事件信息。

看完上述內(nèi)容,你們對如何進行ORACLE AWR性能報告和ASH性能報告的解讀有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI