程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> [Oracle] 分析AWR報告的方法介紹

[Oracle] 分析AWR報告的方法介紹

編輯:關於Oracle數據庫
    因為AWR報告非常長,不可能從頭到尾一字不漏的去看,要有選擇的去看重點部分。最好能對照的來讀,即和系統正常情況下的AWR報告對比,找差異。以下就是對分析AWR報告的方法進行了介紹,需要的朋友參考下  

    AWR的數據主要有兩部分組成:
    1)保存在內存中的系統負載和性能統計數據,主要通過v$視圖查詢 ;
    2)mmon進程定期以快照(snapshot)的方式將內存中的AWR數據保存到SYSAUX表空間中,主要通過DBA_*視圖訪問。

    1. AWR快照的生成
    默認情況下,每隔一小時自動產生一個快照,保存最近7天的信息,可以通過以下語句查詢:
    SQL>select SNAP_INTERVAL,RETENTION from dba_hist_wr_control;

    SNAP_INTERVAL       RETENTION
    ----------------------------------------------------------
    +00000 01:00:00.0       +00007 00:00:00.0
    可以通過以下語句修改時間間隔和保存時間(以分鐘為單位):
    exec dbms_workload_repository.modify_snapshot_settings(interval => 30, retention = > 10*24*60);
    也可以根據需要隨時手動生成快照:
    exec dbms_workload_repository.create_snapshot;

    2. AWR報告的生成
    以sysdba運行如下命令:
    @?/rdbms/admin/awrrpt.sql

    3. AWR報告的分析
    策略
    因為AWR報告非常長,不可能從頭到尾一字不漏的去看,要有選擇的去看重點部分。最好能對照的來讀,即和系統正常情況下的AWR報告對比,找差異。

    AWR報告采用總分的形式,前面是系統的整體情況,後面是各個部分細節,一開始不要陷入細節,先分析系統的整體狀況,對於後面的專題分析,要根據關注點的不同,采取跳躍式分析。
    還要根據具體業務的不同,決定某種現象是否正常。

    系統整體狀況方面
    1)Load Profile:分析系
    了解系統整體負載狀況,如每秒中的事務數/語句數,每秒/每事務物理讀寫次數(Physical Reads/Writes), 邏輯讀寫次數(Logical Reads/Writes),SQL語句的解析(Parse),特別是硬解析次數等。

    2)Instance Efficiency Percentages:各指標都應接近100%,除了:execute to parse (70%以上)和parse cpu to parse elapsed。如果不符合,基本可以確定系統存在性能問題;但是如果反過來,即都符合,也不能說明系統完全正常,還要看實際情況。

    具體狀況方面
    1)Top 5 Timed Events:這裡列出消耗時間最多的5個等待事件,每種等待說明,都表示一種原因,如:db file sequential read表示按索引訪問出現等待,db file scattered reade表示全表掃描訪問出現等待事件。
    2)Top N SQL:根據時間消耗,內存消耗,物理I/O等排序,對相關SQL分析執行計劃
    3)如果是RAC環境,需要特別關注RAC Statistic中的相關指標
    4)SGA PGA分析
    5)分析表空間、數據文件I/O

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved