快速生成AWR报告

1 什么是AWR?

该词的全拼:Automatic Workload Repository。AWR是基于oracle的自动定时采样功能,oracle后台进程定时的收集当前系统的数据参数,并将数据保存到数据库中,后续从数据库中提取数据参数来对整个数据库的性能做评估。

2 为什么会引入AWR?

在10g之前,当前的会话信息保存在v$session视图中,处于等待状态的会话会被复制一份到v$session_wait视图中。当连接断掉的时候,v$session和v$session_wait视图中的数据都会被清理掉。

从10g开始,oracle将v$session_wait中信息保留下来了,并增加了v$active_session_history(ASH)视图,记录每个活动session在v$session_wait中最近10次的等待事件。然而ASH的采样数据是保存在内存中。而分配给ASH的内存空间是有限的,当所分配空间占满后,旧的记录就会被覆盖掉;而且数据库重启后,所有的这些ASH信息都会消失。这样,对于长期检测oracle的性能是不可能的。所以在Oracle10g中,AWR孕育而生,它用来永久的保存ASH中的信息。

不过全部保存ASH中的信息是非常耗费时间和空间的,AWR采用的策略是:每小时对v$active_session_history进行采样一次,并将信息保存到磁盘中,保留7天,7天后旧的记录会被覆盖。当然这个采样频率(1小时)和保留时间(7天)是可以动态调整的。

小注:

(1) 使用AWR之前需保证oracle已经开启了该功能。

   show parameter statistics_level

只有该值的显示为TYPICAL或者ALL,则可使用,否则需要更改参数。

(2) 采样频率和保留时间可以通过dba_hist_wr_control视图来查看。

(3) 通过如下的语句来更改采样频率和保留时间:(时间的单位是分钟)

exec dbms_workload_repository.modify_snapshot_settings(interval=>60, retention=>7*24*60);

3 如何生成AWR报告?

(1) 产生关于整个数据的AWR报告,一句话搞定:

Sqlplus  ‘/as sysdba’  @?/rdbms/admin/awrrtp.sql

在执行该SQL脚本的过程中,需要依次输入如下的几个参数:

(2) 设置生成报告的模式:有HTML和文本格式两种可选;

(3) 设置报告的天数;

(4) 设置开始和结束的快照号;

(5) 设置报告的名称。

(6) 在执行SQLPLUS的目录下去查找第(5)步生成的报告名。修改报告的后缀为html,在IE中打开文档。

注:

(1) oracle生成的AWR报告有两种类型的格式:HTML和文本格式。Oracle默认是HTML格式,一般也建议采用该格式,因为该格式对后续的报告分析更直观和友好。

(2) AWR是用来捕获两个快照(时间点)之间的数据。

4 如何查看AWR报告?

查看AWR报告是一件比较麻烦的事,因为该报告中包含的参数指标太多,所以不可能全报告依次浏览,这样的浏览效果没有太大的价值,也还浪费时间,应该按需浏览,抓住一些关键的指标。

一般而言,从instance efficiency percentages和TOP 5 timed event 出发,根据内存使用率和具体的事件,到下面的main report中去查找可能出现问题的指标。

注:

(1) 对oracle有一个总体的认识之后,更有利于分析报告中的各个参数;

(2) 对报告中一些指标的含义有一个清晰的认识,更有利于分析当前的性能瓶颈所在;

(3) 根据报告分析出的性能问题,需要根据报告中的各个指标进行相互验证;

(4) 对报告的快速分析还需基于不断的实践;

(5) 一般来说,AWR用来对整个数据库做一个性能评估,当然在分析其中的一些指标参数时也会具体的涉及到一些SQL语句。对于SQL语句级的性能,可以使用SQL_TRACE进行分析。

上文只是在做过几次AWR报告之后的一个小记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值