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)

[Oracle] - 性能优化工具(2) - ASH的更多相关文章

  1. [Oracle] - 性能优化工具(3) - ADDM

    ADDM 通过检查和分析AWR获取的数据来推断Oracle数据库中可能的问题.并给出优化建议. 获取ADDM的方法例如以下: @?/rdbms/admin/addmrpt.sql 以下能够看一个样例: ...

  2. [Oracle] - 性能优化工具(1) - AWR

    AWR快照 默认情况下,Oracle每隔一小时会自己主动产生一个快照,保存近期8天的快照. 我们能够通过例如以下语句获得产生快照的时间间隔和保存的天数: SYS@orcl(lx15)> sele ...

  3. [Oracle] - 性能优化工具(5) - AWRSQL

    在AWR中定位到问题SQL语句后想要了解该SQL statement的详细运行计划,于是就用AWR报告中得到的SQL ID去V$SQL等几个动态性能视图中查询,但发现V$SQL或V$SQL_PLAN视 ...

  4. [Oracle] - 性能优化工具(4) - AWRDD

    AWRDD是用于比較两个AWR快照,从而获得不同一时候期的性能. 运行例如以下语句获得AWRDD: @?/rdbms/admin/awrddrpt.sql 2025 23 2月 2014 07:12 ...

  5. Oracle 性能优化的基本方法

    Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事 ...

  6. 【转载】我眼中的Oracle性能优化

    我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...

  7. PHP性能优化工具–xhprof安装

    PHP性能优化工具–xhprof安装,这里我先贴出大致的步骤: 1.获取xhprof 2.编译前预处理 3.编译安装 4.配置php.ini 5.查看运行结果 那么下面我们开始安装xhprof工具吧: ...

  8. 降低磁盘IO使Oracle性能优化(转)

    文章转自:http://blog.chinaunix.net/uid-26813519-id-3207996.html 硬件方面虽然只占Oracle性能优化的一个方面(另一方面是软件),但是仍不可忽视 ...

  9. PLSQL_性能优化工具系列16_Best Practices: Proactively Avoiding Database

    占位符 PLSQL_性能优化工具系列_Best Practices: Proactively Avoiding Database/Query Performance Issue

随机推荐

  1. Beginner’s Guide(开始者向导)

    This guide gives a basic introduction to nginx and describes some simple tasks that can be done with ...

  2. LeetCode(3) - Longest Substring Without Repeating Characters

    这题的题意大概就是给你一个字符串"abcdecde",找到最长的子字符串长度,里面所有的子母都不重复.本例子中最长的满足条件的子字符串就是"abcde",所以应 ...

  3. nodejs 调用 OC 方法

    nodejs 借助 nodobjc 模块 https://github.com/TooTallNate/NodObjC demo: var $ = require('nodobjc') $.frame ...

  4. SpringMVC处理Date类型的成员变量方法

    原文链接:http://www.tuicool.com/articles/aYfaqa 在使用 SpringMVC 的时候,我们可能需要将一个对象从 View 传递给 Controller .而当这个 ...

  5. Hibernate理论

    1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等.并且Hibernate是 ...

  6. visualC/C++连接MySql数据库

    vs连接数据库其实就是将mysql数据库.h头文件接口.lib链接文件和dll执行文件加入到项目中.下面是配置如何加入. 转于http://www.cnblogs.com/justinzhang/ar ...

  7. linq to sql转载

    LINQ简介 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库 ...

  8. Castle IOC容器构建配置详解(二)

    主要内容 1.基本类型配置 2.Array类型配置 3.List类型配置 4.Dictionary类型配置 5.自定义类型转换 一.基本类型配置 在Castle IOC的配置文件中,大家可能都已经注意 ...

  9. 《Spring3.0就这么简单》第1章快速入门

    问题 [如何将jsp中传递到HttpServletRequest的参数,自动装配到Java对象中] [成功] public void setUsernAme(String username) < ...

  10. web APi角色认证

    http://www.cnblogs.com/youring2/archive/2013/03/09/2950992.html http://kb.cnblogs.com/page/107117/