`

ASH、AWR、ADDM区别联系

 
阅读更多

=========================================================================================================
                                 概念知识梳理
=========================================================================================================
--->>根据时段区间生成ASH报告:

---->>ASH报告信息:
 

ASH (Active Session History)

    ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。

    ASH buffers 的最小值为1MB,最大值不超过30MB.内存中记录数据。期望值是记录一小时的内容。

    生成ASH报告:

    SQLPLUS>@?/rdbms/ashrpt.sql

    ASH 内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息库(AutomaticWorkload Repository ,AWR) 由后台进程MMON完成。ASH信息同样被采集写出到AWR负载库中。由于内存不是足够的,所以MMNL进程在ASH写满后会将信息写出到AWR负载库 中。ASH全部写出是不可接受的,所以一般只写入收集的10%的数据量,而且使用direct-pathinsert完成,尽量减少日志的生成,从而最小 化数据库性能影响。

    写出到AWR负载库的ASH信息记录在AWR的基础表wrh$active_session_hist中,wrh$active_session_hist是一个分区表,Oracle会自动进行数据清理。

    AWR(Automatic Workload Repository)自动工作负载信息库

    AWR是Oracle 10g中的一个新特性,类似于10g以前的statspack.不过在使用上要比statspack简单,提供的性能指标要比statspack多很多,能更好的帮助DBA来发现数据库的性能瓶颈。

    AWR 是Oracle安装好后自动启动的,不需要特别的设置。收集的统计信息存储在SYSAUX表空间SYS模式下,以WRM$_*和WRH$_*的格式命名,默认会保留最近7天收集的统计信息。每个小时将收集到的信息写到数据库中,这一系列操作是由一个叫MMON的进程来完成的。
  ---->>根据snapshot敬意生成AWR报告:
 
---------->>AWR报告部分信息:

  
AWR存储的数据分类:

    WRM$表存储AWR的元数据(awrinfo.sql脚本)

    WRH$表存储采样快照的历史数据(awrrpt.sql脚本)

    WRI$表存储同数据库建议功能相关的数据(ADDM相关数据)

    一。生成AWR报告:

    SQL>@?/rdbms/admin/awrrpt

    根据向导来完成AWR报告的生成。需要注意的是,在选择时间范围的时候,中间不能有停机(如果显示的时间中间有空白行,表示有停机情况)。在选择报告类型的时候一般使用默认的HTML,方便查看。

    二。查看数据库的AWR的设置:

    SQL> select snap_interval, retention from dba_hist_wr_control;

    SNAP_INTERVAL

    ---------------------------------------------------------------------------

    RETENTION

    ---------------------------------------------------------------------------

    +00000 01:00:00.0(每小时收集一次)

    +00007 00:00:00.0(保留7天)

 三。修改默认设置:

    begin

    DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 20,

    retention => 2*24*60);

    end;

    修改成每20分钟收集一次统计量,保留最近的2天统计量信息。

    四。手动收集一次数据库的统计信息:

    exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;

    我们还可以通过DBMS_WORKLOAD_REPOSITORY包完成对基线,默认设置的修改等操作。

    ADDM (Automatic Database Diagnostic Monitor AWR)

    是Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建议,给出SQL的优化,索引的创建,统计量的收集等建议。

    ---->>根据AWR区间生成ADDM报告:

   ---->>ADDM报告概要信息:

ADDM报告生成:

    SQLPLUS>@?/rdbms/addmrpt.sql

    Oracle 性能调整最重要的就是对最影响性能的SQL的调整。在一个应用中,能够影响到数据库的只有SQL,也只能是SQL.我们不能一味依靠增强硬件,修改系统、 数据库参数来提高数据库的性能。更多的应该关注那些最影响性能的SQL语句。ASH报告、AWR报告、ADDM报告都能够找出最影响性能的SQL的工具。 在分析ASH报告、AWR报告的时候,最重要的就是关注SQL Statistics,SQL Statistics中最应该关注的是SQL ordered byGets和SQL ordered byReads两个指标。大量的Gets(逻辑读)会占用大量的CPU时间。大量的Reads(物理读)会引起IO的瓶颈出现。一般情况下,大量的 Gets会伴随着大量的Reads出现。当然,我们可以通过增大SGA的大小来减少Reads的量。通过这两个指标找到了最影响性能的SQL,这是首要 的,也是必要的。下一步就可以通过创建索引,调整SQL来提高SQL单独执行时的性能。减少SQL执行时出现的高Gets,Reads.当然整体的性能影 响还和 excutions有关,如果这条SQL执行的次数过多,累加起来量还是很大的。那么就可以考虑通过在应用上缓存等手段来减少SQL执行的次数。另外还有 一个需要注意的问题就是在开发过程中SQL一定要使用绑定变量,来减少硬解析(大量的硬解析也会消耗大量的CPU时间,占用大量的Latch)。在开发过 程中有个原则就是:小事务。操作完成及时的提交。

    我们使用这么多种方式、报告只有一个唯一的目的:找出最影响系统性能的SQL语句。找到SQL下一步就是对它进行调整了。

    我们在监控数据库时,如果是当前正在发生的问题,我们可以通过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生成的视图)
=========================================================================================================
                                 实 用 脚 本
=========================================================================================================

@?rdbms/admin/awrrpt.sql是以前statspack的扩展,收集信息更详细,查看长期的数据库情况。
@?rdbms/admin/ashrpt.sql查看当前的数据库情况,因为ash是每秒从v$session进行进行取样,awr收集的数据要比ash多得多。
一般收集数据库信息的话要结合awr和ash。
@?rdbms/admin/addmrpt .sql相当于是驻留在oracle里的一位专家,是一个自我诊断引擎。产生symptom,problem,infomation,提供解决问题的建议,并自动修复一些具体的故障。
@?rdbms/admin/awrinfo.sql显示的都是awr的相关信息,包括快照信息、sysaux空间使用、awr组件、ash等信息。
=========================================================================================================
                                简   单   总    结
=========================================================================================================

awr与ash的最主要的区别在于:awr是平面的,全面的,ash是立体的,更侧重于session的event跟踪,
由于业务量大的数据库的event wait是瞬息万变,awr很可能会监控不到,为了弥补这个不足,ash才可以对session的event进行跟踪。
ash与addm的区别在于:addm偶重于基于对当据库当前状态的分析,对存在的问题提供指导性的意见,可以说ash,addm是awr的补充,
awr全面地收集数据库的状态,但ash/addm是侧重要对收集的数据进行分析,并提供一些有益的建议

 

参考至:http://blog.itpub.net/29119536/viewspace-1144554/

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    awr addm ash 相关脚本功能分析

    $ORACLE_HOME/rdbms/admin目录下awr,addm,ash相关脚本功能分析

    RDA优化工具,包括AWR,ASH,ADDN

    RDA优化工具集合了AWR(Automatic Workload Repository)、ASH(Active Session History)和ADDM(Automatic Database Diagnostic Monitor),帮助DBAs(Database Administrators)深度洞察数据库的运行状态,及时...

    oracle 10g AWR

    §1 Oracle 10g AWR-ADDM_ASH AWR 报告可以通过执行脚本生成,脚本需要在 SYSDBA 下运行。脚本的开头设置了页面大小、行大小、截断查询结果的最后空格等参数。然后,脚本显示执行命令,设置日期格式,取消屏幕显示...

    Oracle常用分析诊断工具.pdf

    本文主要介绍了四个常用的Oracle分析诊断工具:AWR、ASH、ADDM以及它们的应用。 1. AWR(Automatic Workload Repository)是Oracle 10g引入的新特性,用以替代之前的Statspack。AWR提供了全面的数据库性能信息,...

    专题之AWR(ORACLE)

    此外,AWR引入了ADDM(Automatic Database Diagnostic Monitor),这是一个基于AWR数据的主动性能诊断机制。ADDM能够分析AWR快照,预测并预防潜在的性能问题,比如识别出热块或热对象,然后提供相应的调整建议,使得...

    Oracle自带的性能诊断工具(AWR报告)

    - **获取ASH报告**:与获取AWR报告类似,可以通过执行以下SQL语句来获取ASH报告: ```sql SELECT * FROM TABLE(dbms_workload_repository.ash_report_html( (SELECT dbid FROM v$database), 1, SYSDATE - 90 /...

    Oracle 性能分析利器ASH报告收集与简析.pdf

    进一步地,还可以结合其他性能监控工具(如AWR报告、ADDM报告等)来综合分析数据库的性能状况。 总的来说,Oracle的ASH报告是性能调优的关键工具,它提供了实时和历史的会话活动信息,帮助DBA有效地管理和优化...

    Oracle_Performance_Tuning_02_Using_AWR_and_AWR

    AWR还集成了自动数据库诊断监视器(Automatic Database Diagnostic Monitor, ADDM),后者能够自动分析快照数据,识别出系统性能瓶颈,并提出优化建议。通过运行AWR报告,DBA可以深入了解数据库的工作负载特性,找出...

    深入解析和定制Oracle优化工具.pptx

    本篇主要深入解析Oracle的几个关键优化工具,包括Automatic Workload Repository (AWR),Active Session History (ASH),Adaptive Database Dynamic Monitoring (ADDM),以及SQL Tuning和SQL Monitor,并探讨如何对...

    Oracle数据库性能分析工具的研究.pdf

    本文主要探讨了Oracle数据库的性能分析工具,包括AWR(Automatic Workload Repository)、ASH(Active Session History)和ADDM(Automatic Database Diagnostic Monitor),这些工具是Oracle数据库自带的性能监控和...

    Oracle数据库技术及面试要点详解

    Oracle数据库的核心技术和面试常考知识点,内容包括 Oracle的体系结构、索引、SQL优化、统计信息、等待事件、性能调优、数据库诊断、会话管理、ASM 和 RAC 维护、DG 和 OGG 维护、备份恢复、ASH/AWR/ADDM 报告分析、...

    Oracle整体性能获取工具.pdf

    AWR(Automatic Workload Repository)报告是 Oracle 数据库中的一种性能分析工具,能够帮助用户了解数据库的整体性能、资源利用率、SQL 执行情况等信息。AWR 报告可以通过执行 Dbms_workload_repository.awr_report...

    Oracle收集性能日志方法

    Oracle还提供了一些内置工具,如`ADDM (Automatic Database Diagnostic Monitor)`,它基于AWR和ASH数据自动识别性能问题。另外,`SQL Tuning Advisor`和`Memory Advisor`也能根据SQL执行情况和内存使用给出优化建议...

    oracle性能诊断

    通过对系统统计量、系统等待事件和时间模型的分析,结合AWR、ADDM和ASH等工具的支持,我们可以有效地识别并解决Oracle数据库中的性能问题。希望本文能为您的Oracle性能诊断工作提供一定的参考价值。

    Oracle 数据库应用:第14章 监视Oracle.ppt

    通过有效地利用AWR、ASH和ADDM,DBA能够全面地了解系统性能状况,及时发现和解决问题,从而提升数据库的运行效率和稳定性。在实际操作中,根据业务需求调整AWR和ASH的采样频率和保留时间,以及设置适当的统计级别,...

    oracle跟踪工具

    ADDM通过分析AWR和ASH数据,自动识别并提出性能优化建议。 7. **Trace Tracing**:Oracle中的任何组件,如后台进程、数据库实例或用户会话,都可以生成跟踪文件。这些文件包含大量的诊断信息,对于定位问题非常有...

    试谈数据库性能诊断的七种武器培训课件.ppt

    7. **Oracle Enterprise Manager (EM)**:Oracle的企业管理工具,提供了全面的数据库监控、诊断和管理功能,包括ASH(Active Session History)、AWR和ADDM的图形化界面,使得性能问题的发现和解决更为直观和便捷。...

    ORACLE性能优化工具整理

    本文主要介绍Oracle中的AWR、ASH和ADDM等工具,并通过详细介绍它们的原理和实践使用方法,帮助读者更好地理解和应用这些工具。 AWR(Automatic Workload Repository) AWR是Oracle中一个自动的负载知识库,它定期...

    数据库性能诊断的七种武器_可下载.pptx

    这些武器是DBA们在面对性能问题时的得力助手,它们包括动态性能视图、等待事件、ASH和AWR报告、SQL Trace、10046 Trace、ADDM以及监控和诊断包。 1. **动态性能视图**:动态性能视图(V$视图)是数据库内部状态的...

    12cOCP题库

    这是针对12c数据库性能优化的专门考试,学习者需要掌握如何分析和解决性能问题,使用各种工具(如SQL*Plus、AWR、ASH、ADDM等)进行性能监控,理解执行计划和索引优化。此外,还包括内存结构的配置、并行查询的管理...

Global site tag (gtag.js) - Google Analytics