`

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整体性能获取工具.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等)进行性能监控,理解执行计划和索引优化。此外,还包括内存结构的配置、并行查询的管理...

    Oracle DBA突击帮你赢得一份DBA职位(完全高清版)1

    第5章至第9章是中级篇,专门讨论性能调整,包括性能优化原理、Oracle性能调整发展历程、AWR、ASH、ADDM、Auto SQL Tunning等最新的助手工具,并通过大量实例展示技术的综合应用。第10章至第13章是高级篇,主要面向...

Global site tag (gtag.js) - Google Analytics