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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22521389/viewspace-764986/

ash、awr和addm详解相关推荐

  1. Oracle性能调整的三把利剑--ASH,AWR,ADDM

    Oracle性能调整的三把利剑--ASH,AWR,ADDM ASH (Active Session History) ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件.不活动的会 ...

  2. 详解Oracle AWR运行日志分析工具

    在Oracle数据库学习和使用中,遇到性能问题,首要的步骤就是导出AWR分析报告,AWR是Oracle的一个脚本工具,通过周期性快照记录下当时的所有运行数据,数据库管理员可以导出其中一部分数据进行分析 ...

  3. Oracle 错误代码详解

    Oracle 错误代码详解及解决方式–ORA ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事 ...

  4. [深入浅出Cocoa]详解键值观察(KVO)及其实现机理

    [深入浅出Cocoa]详解键值观察(KVO)及其实现机理 本文转载至    罗朝辉 (http://www.cppblog.com/kesalin/) 本文遵循"署名-非商业用途-保持一致& ...

  5. 《oracle大型数据库系统在AIX/unix上的实战详解》讨论31: oracle、sybase 数据库的不同访问...

    <Oracle大型数据库系统在AIX/UNIX上的实战详解> 讨论31:  oracle.sybase 数据库的不同访问方式   文平. 用户来信要求更细节比较一下Oracle和sybas ...

  6. Linux-shell-完全详解

    Linux-shell-完全详解(1) 一. Shell简介:什么是Shell,Shell命令的两种执行方式1 二. 几种常见的Shell1 三. Shell脚本语言与编译型语言的差异2 四.什么时候 ...

  7. xhost display 详解

    xhost display 详解 标签: server图形windowslinuxtcpunix 2011-09-29 16:01 8809人阅读 评论(0) 收藏 举报 在Linux/Unix类操作 ...

  8. 【Linux】详解socket编程接口

    socket编程接口详解 1. socket常见API 2. IPv4协议的地址信息结构:sockaddr_in结构体 2.1 sockaddr结构体 2.2 in_addr结构体 2.3 socka ...

  9. 离线强化学习(Offline RL)系列3: (算法篇) IQL(Implicit Q-learning)算法详解与实现

    [更新记录] 论文信息:Ilya Kostrikov, Ashvin Nair, Sergey Levine: "Offline Reinforcement Learning with Im ...

最新文章

  1. ASP.NET命名规范
  2. div滚动到指定位置 vue_【Vue 进阶】从 slot 到无渲染组件
  3. 后台运行神器screen
  4. 【crunch bang】 tint2-用来控制桌面的布局
  5. jsp学习(1)jsp请求过程和生命周期
  6. 简单配置 docker swarm
  7. iphone无线充电充电测试软件,瞎折腾星人的测评 篇一:想体验iPhone的无线充电?这可能是最具性价比的选择了!...
  8. UFS Clk Gate介绍
  9. 腾讯地图手把手教你实现微信小程序路线规划
  10. 世间谤我、欺我、辱我、笑我,为之奈何?
  11. Android 拨号盘应用源码分析
  12. 美国南加州大学骆沁毅:构建高性能的异构分布式训练算法
  13. Java 内存模型如何保证多线程安全
  14. php新闻删除功能设计,PHP开发 新闻发布系统之新闻删除页面
  15. 淘宝UWP PC版邀请码已经发放给了前20名申请的博友。请在你们的博客园私信里查收。...
  16. 37种传感器(六)之声音传感器模块+Stduino NanoUNO
  17. PC休闲游戏~植物大战僵尸-植物连连看v1.0正式发布啦(更新iPhone版本)!
  18. acg缩写_ACG如何在Alexa上使屡获殊荣的技术播客栩栩如生,以及我们在此过程中学到的知识...
  19. jquery的css()函数同时设置多个css属性值
  20. PS工作区拖动乱了如何复位?

热门文章

  1. RS笔记:深度推荐模型之SIM长短期兴趣网络(基于搜索的超长行为序列上的用户长期兴趣建模)[CIKM 2020, 阿里妈妈广告团队]
  2. MySQL的MDL锁解惑
  3. ASPxGridView A primary key field specified via the KeyFieldName..
  4. html制作动态八卦图源码
  5. 超级画板自动推理功能初探
  6. IM消息ID技术专题(五):开源分布式ID生成器UidGenerator的技术实现
  7. ROS2 msg和srv CMake编写注意事项
  8. 饿了么UI时间选择器
  9. 鸿蒙不支持nas,群晖Video Station不支持dts eac3的解决方案
  10. 怎样进行内存卡数据恢复