ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ash、awr和addm详解

ash、awr和addm详解

原创 Linux操作系统 作者:wzc_19821215 时间:2013-06-28 01:03:07 0 删除 编辑

ASH (Active Session History)
_!_wW+|I~zI22521389ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。ITPUB个人空间N;T/`cjr*M'l
ASH buffers 的最小值为1MB,最大值不超过30MB。内存中记录数据。期望值是记录一小时的内容。
6s6uB|Nk/W$u22521389
!RxYD,@9n22521389生成ASH报告:ITPUB个人空间@+c)c Rv9~$^/E
SQLPLUS>@?/rdbms/ashrpt.sqlITPUB个人空间,N8R3ZgJf
ITPUB个人空间,f7lr(zo6UJ
ASH内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息库(Automatic Workload Repository ,AWR) 由后台进程MMON完成。ASH信息同样被采集写出到AWR负载库中。由于内存不是足够的,所以MMNL进程在ASH写满后会将信息写出到AWR负载库中。ASH全部写出是不可接受的,所以一般只写入收集的10%的数据量,而且使用direct-path insert完成,尽量减少日志的生成,从而最小化数据库性能影响。

写出到AWR负载库的ASH信息记录在AWR的基础表wrh$active_session_hist中,wrh$active_session_hist是一个分区表,Oracle会自动进行数据清理。ITPUB个人空间'cF"M ~,lJS.o

lsH@ Y9gU22521389AWR(Automatic Workload Repository)自动工作负载信息库ITPUB个人空间0@0bxbwU]
AWR是Oracle 10g中的一个新特性,类似于10g以前的statspack。不过在使用上要比statspack简单,提供的性能指标要比statspack多很多,能更好的帮助DBA来发现数据库的性能瓶颈。ITPUB个人空间9m@p2Kh:OsAO Y4|:\
AWR是Oracle安装好后自动启动的,不需要特别的设置。收集的统计信息存储在SYSAUX表空间SYS模式下,以WRM$_*和WRH$_*的格式命名,默认会保留最近7天收集的统计信息。每个小时将收集到的信息写到数据库中,这一系列操作是由一个叫MMON的进程来完成的。ITPUB个人空间9WC,WF1uVg-Sg
ITPUB个人空间!V'DuH1u7oz e
AWR存储的数据分类:
Ex[$wU22521389WRM$表存储AWR的元数据(awrinfo.sql脚本)
%X|8rb`9}M P22521389WRH$表存储采样快照的历史数据(awrrpt.sql脚本)ITPUB个人空间l"~-r)A8Si9^
WRI$表存储同数据库建议功能相关的数据(ADDM相关数据)ITPUB个人空间TZUQk Q

,[*yM6h7w22521389一.生成AWR报告:ITPUB个人空间#j\W4Bo4rO*[`%V*TF\:P
SQL>@?/rdbms/admin/awrrpt

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

二.查看数据库的AWR的设置:
_\ GLG,l ZD22521389SQL> select snap_interval, retention from dba_hist_wr_control;

SNAP_INTERVALITPUB个人空间2t"E1_bZV/~-Z-Y
---------------------------------------------------------------------------
:EJs%yg gy22521389RETENTIONITPUB个人空间f!jt2n^7Y|6Ko
---------------------------------------------------------------------------
h?'b+wJ4zTm:B22521389+00000 01:00:00.0(每小时收集一次)
,FW d#X]&x'[22521389+00007 00:00:00.0(保留7天)

三.修改默认设置:ITPUB个人空间)b5s(P:\f"[,E
beginITPUB个人空间.L.r7m Cf.X
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 20,ITPUB个人空间&_5M;Mb l`~}
retention => 2*24*60);ITPUB个人空间}*UC#D4J$R([
end;

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

四.手动收集一次数据库的统计信息:ITPUB个人空间~"K7k#eNg
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;

我们还可以通过DBMS_WORKLOAD_REPOSITORY包完成对基线,默认设置的修改等操作。
5A:R#\3PU:R!ATS22521389
{ V8_^e&~5rG9H6d22521389ADDM (Automatic Database Diagnostic Monitor AWR)
+M9^G^\B@j22521389是Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建议,给出SQL的优化,索引的创建,统计量的收集等建议。ITPUB个人空间-cG:{O8RfZ
ITPUB个人空间2Ky8x t!G|B/[ H d
ADDM报告生成:
-|$i'Vgr FF#W22521389SQLPLUS>@?/rdbms/addmrpt.sql
#iJ2fHXs3wm e7p-S22521389ITPUB个人空间3C:WSTFW1[\
Oracle性能调整最重要的就是对最影响性能的SQL的调整。在一个应用中,能够影响到数据库的只有SQL,也只能是SQL。我们不能一味依靠增强硬件,修改系统、数据库参数来提高数据库的性能。更多的应该关注那些最影响性能的SQL语句。ASH报告、AWR报告、ADDM报告都能够找出最影响性能的SQL的工具。在分析ASH报告、AWR报告的时候,最重要的就是关注SQL Statistics,SQL Statistics中最应该关注的是SQL ordered by Gets和SQL ordered by Reads两个指标。大量的Gets(逻辑读)会占用大量的CPU时间。大量的Reads(物理读)会引起IO的瓶颈出现。一般情况下,大量的Gets会伴随着大量的Reads出现。当然,我们可以通过增大SGA的大小来减少Reads的量。通过这两个指标找到了最影响性能的SQL,这是首要的,也是必要的。下一步就可以通过创建索引,调整SQL来提高SQL单独执行时的性能。减少SQL执行时出现的高Gets,Reads。当然整体的性能影响还和excutions有关,如果这条SQL执行的次数过多,累加起来量还是很大的。那么就可以考虑通过在应用上缓存等手段来减少SQL执行的次数。另外还有一个需要注意的问题就是在开发过程中SQL一定要使用绑定变量,来减少硬解析(大量的硬解析也会消耗大量的CPU时间,占用大量的Latch)。在开发过程中有个原则就是:小事务。操作完成及时的提交。ITPUB个人空间{w1R$PD9W2H

Av+veM22521389我们使用这么多种方式、报告只有一个唯一的目的:找出最影响系统性能的SQL语句。找到SQL下一步就是对它进行调整了。ITPUB个人空间.F/S'ha j.EU
ITPUB个人空间6]$RA ]d$|N&Mc4]-K
我们在监控数据库时,如果是当前正在发生的问题,我们可以通过v$session+v$sqlarea来找出性能最差的SQL语句。如果在一个小时以内发生的我们可以通过生成ASH报告来找出SQL。如果是1小时以上或几天我们可以通过AWR报告来找出几小时,几天以来最影响系统的SQL语句。ADDM报告基于AWR库,默认可以保存30天的ADDM报告。ITPUB个人空间? O G? U*F

yW9Z-f\22521389我们也可以直接查询试图:
-Oz ne}8F[v#A5D%y22521389v$session                                      (当前正在发生)ITPUB个人空间Y4Y q*m2D:l-u
v$session_wait                            (当前正在发生)ITPUB个人空间d1e*l8yW[ Ln1jS
v$session_wait_history              (会话最近的10次等待事件)
EG h_W22521389v$active_session_history           (内存中的ASH采集信息,理论为1小时)
-k3ip*mXZ22521389wrh$_active_session_history    (写入AWR库中的ASH信息,理论为1小时以上)ITPUB个人空间Gf}8k DF;dN/g K-@
dba_hist_active_sess_history   (根据wrh$_active_session_history生成的视图)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22521389/viewspace-764986/,如需转载,请注明出处,否则将追究法律责任。

上一篇: LGWR触发条件
请登录后发表评论 登录
全部评论
Boundls怎么丢了

注册时间:2012-06-04

  • 博文量
    57
  • 访问量
    137340