zoukankan      html  css  js  c++  java
  • [Oracle]

    ASH和AWR的关系

    ASH以V$SESSION为基础,每秒採样一次,记录活动会话等待的事件。不活动的会话不会採样,採样工作由新引入的后台进程MMNL来完毕。
    ASH内存记录数据始终是有限的,为了保存历史数据,引入了自己主动负载信息库(Automatic Workload Repository ,AWR) 由后台进程MMON完毕。ASH信息相同被採集写出到AWR负载库中。因为内存是有限的,所以MMNL进程在ASH写满后会将信息写出到AWR负载库中。

    ASH也不是写出所有数据导AWR。所一般仅仅写入收集的10%的数据量,并且使用direct-path insert完毕,尽量降低日志的生成,从而最小化数据库性能影响。


    总结一下:AWR是依据snapshot採样间隔来进行系统总体性能推断的。而ASH的粒度更细。

    比方你的AWR是1小时採样一次,可是假设一个故障只持续了5分钟,之前和之后数据库都正常。那么这5分钟究竟发生了什么。要去看ASH。


    我们在监控数据库时,假设是当前正在发生的问题。我们能够通过v$session+v$sqlarea来找出性能最差的SQL语句。假设在一个小时以内发生的我们能够通过生成ASH报告来找出SQL.假设是1小时以上或几天我们能够通过AWR报告来找出几小时,几天以来最影响系统的SQL语句。ADDM报告基于AWR库。默认能够保存30天的ADDM报告。
        我们也能够直接查询试图:
        v$session                                     (当前正在发生)
        v$session_wait                           (当前正在发生)
        v$session_wait_history             (会话近期的10次等待事件)
        v$active_session_history          (内存中的ASH採集信息,理论为1小时)
        wrh$_active_session_history    (写入AWR库中的ASH信息。理论为1小时以上)
        dba_hist_active_sess_history   (依据wrh$_active_session_history生成的视图)

    ASH的生成

    运行例如以下脚本生成ASH报告:
    @?

    /rdbms/admin/ashrpt.sql 1. 你是一路回车。就是获取近期15分钟的ASH报表。

    2. 你依据oldest ash sample available 时间,然后回车,选择的是眼下能够收集到的最长ASH执行情况 3. 你能够选择Oldest ASH sample available和Latest ASH sample available之间时间,然后输入时长,比方30表示30分钟。取你要取的不论什么时段的ASH报表

    ASH报表也能够直接手工获取,比方select output from table(dbms_workload_repository.ash_report_html( dbid,inst_num,l_btime,l_etime);
    演示样例:
    set pagesize 0
    set linesize 121
    spool d:ash_rpt.html
    select output from table(dbms_workload_repository.ash_report_html( 977587123,1,SYSDATE-30/1440,SYSDATE-1/1440));
    spool off
    
    --包具体參数:
    dbms_workload_repository.ash_report_html(
    l_dbid         IN NUMBER, 
    l_inst_num     IN NUMBER, 
    l_btime        IN DATE,
    l_etime        IN DATE,
    l_options      IN NUMBER DEFAULT 0,
    l_slot_width   IN NUMBER DEFAULT 0,
    l_sid          IN NUMBER DEFAULT NULL,
    l_sql_id       IN VARCHAR2 DEFAULT NULL,
    l_wait_class   IN VARCHAR2 DEFAULT NULL,
    l_service_hash IN NUMBER DEFAULT NULL,
    l_module       IN VARCHAR2 DEFAULT NULL,
    l_action       IN VARCHAR2 DEFAULT NULL,
    l_client_id    IN VARCHAR2 DEFAULT NULL,
    l_plsql_entry  IN VARCHAR2 DEFAULT NULL)
  • 相关阅读:
    android 中文 api (43) —— Chronometer
    SVN客户端清除密码
    Android 中文 API (35) —— ImageSwitcher
    Android 中文API (46) —— SimpleAdapter
    Android 中文 API (28) —— CheckedTextView
    Android 中文 API (36) —— Toast
    Android 中文 API (29) —— CompoundButton
    android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
    Android 中文 API (30) —— CompoundButton.OnCheckedChangeListener
    Android 中文 API (24) —— MultiAutoCompleteTextView.CommaTokenizer
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7351689.html
Copyright © 2011-2022 走看看