[Oracle] - 性能优化工具(2) - ASH
来源:互联网 发布:淘宝主图制作教程 编辑:程序博客网 时间:2024/05/22 12:38
ASH和AWR的关系
ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。
ASH内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息库(Automatic Workload Repository ,AWR) 由后台进程MMON完成。ASH信息同样被采集写出到AWR负载库中。由于内存是有限的,所以MMNL进程在ASH写满后会将信息写出到AWR负载库中。ASH也不是写出全部数据导AWR,所一般只写入收集的10%的数据量,而且使用direct-path insert完成,尽量减少日志的生成,从而最小化数据库性能影响。
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生成的视图)
我们也可以直接查询试图:
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.sql1. 你是一路回车,就是获取最近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 0set linesize 121spool d:\ash_rpt.htmlselect 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)
4 0
- [Oracle] - 性能优化工具(2) - ASH
- ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)
- <<Oracle数据库性能优化艺术(第五期)>> 第14周 性能报告分析(AWR,ASH)
- ORACLE 11G 性能诊断优化之ASH实战分析详解
- ORACLE 11G 性能诊断优化之ASH实战分析详解
- [Oracle] - 性能优化工具(1) - AWR
- [Oracle] - 性能优化工具(3) - ADDM
- [Oracle] - 性能优化工具(4) - AWRDD
- [Oracle] - 性能优化工具(5) - AWRSQL
- Oracle性能调整--ASH,AWR,ADDM
- oracle ASH
- Oracle性能调整的三把利剑--ASH,AWR,ADDM
- Oracle性能调整的三把利剑--ASH,AWR,ADDM
- 生成ASH性能报告!
- ORACLE SQL性能优化系列(2)
- Oracle SQL性能优化实例(2)
- ORACLE ASH和AWR
- Oracle ASH and AWR
- android LocationManager的使用
- 有一首歌
- Oracle to_char格式化函数
- 怎样更好的进行电脑回收站文件恢复
- JQuery 限制文本框只能输入数字和小数点
- [Oracle] - 性能优化工具(2) - ASH
- 软工文档--机房收费系统文档总结
- oracle 将视图权限授予普通用户
- 刨根问底:C++中未初始化全局变量为什么都会被编译器自动置0
- QT——文件对话框QFileDialog
- C语言字符串替换函数
- 快速解决linux上oracle安装乱码问题
- 如何在Java中进行字符串(String)比较
- C++中的mutable关键字