【优化】查看历史的执行计划之查看AWR报告

AWRAutomatic Workload Repository报告是我们进行日常数据库性能评定、问题SQL发现的重要手段。熟练掌握AWR报告,是做好开发、运维DBA工作的重要基本功。

  

AWR报告的原理是基于Oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中。生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况。AWR镜像保存在数据库中的时间为一个月左右。

 

定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。

如何分析:

* 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确

* 在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是息息相关的(ps:我们先假设这个三个地方都没有物理上的故障),当io负载增大时,肯定需要更多的内存来存放,同时也需要cpu花费更多的时间来过滤这些数据,相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了

* 当我们把一条sql送到数据库去执行的时候,我们要知道,什么时候用到cpu,什么时候用到内存,什么时候用到io

1. cpu:解析sql语句,尝试多个执行计划,最后生成一个数据库认为是比较好的执行计划,不一定是最优的,因为关联表太多的时候,数据库并不会穷举所有的执行计划,这会消耗太多的时间,oracle怎么就知道这条数据时你要,另一个就不是你要的呢,这是需要cpu来过滤的
2. 内存:sql语句和执行计划都需要在内存保留一段时间,还有取到的数据,根据lru算法也会尽量在内存中保留,在执行sql语句过程中,各种表之间的连接,排序等操作也要占用内存
3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io

链接:http://sophie2702.blog.51cto.com/676625/721588/

实验之生成AWR报告:

1  运行脚本,调用生成脚本。程序脚本一般保存在$ORACLE_HOME下的rdbms/admin中,名称为awrrpt.sql

SYS@ORA11GR2>@?/rdbms/admin/awrrpt

 

2输入报告参数,要持续输入一系列的报告参数。输入生成报告类型,目前AWR提供txthtml两种格式。需要确认生成格式,默认是html格式。

 

Current Instance

~~~~~~~~~~~~~~~~

 

   DB Id    DB Name      Inst Num Instance

----------- ------------ -------- ------------

  237843809 ORA11GR2            1 ORA11GR2

 

 

Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

Would you like an HTML report, or a plain text report?

Enter 'html' for an HTML report, or 'text' for plain text

Defaults to 'html'

Enter value for report_type:

 

Type Specified:  html

 

3.报告涉及天数范围,

启动报告后,会显示生成实例的名称等基本信息。 

默认情况下,AWR会将镜像信息保留一个月。手工生成的时候,需要确认生成AWR报告的时间范围。一般情况下,特别是生产环境下,我们通常设置1-7天也就够用了。

 

Instances in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

   DB Id     Inst Num DB Name      Instance     Host

------------ -------- ------------ ------------ ------------

* 237843809         1 ORA11GR2     ORA11GR2     wang

 

Using  237843809 for database Id

Using          1 for instance number

 

 

Specify the number of days of snapshots to choose from

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entering the number of days (n) will result in the most recent

(n) days of snapshots being listed.  Pressing <return> without

specifying a number lists all completed snapshots.

 

 

Enter value for num_days: 1

 

4.输入开始和结束的snapshot编号

输入天数信息后,AWR生成代码会将天数范围内的snapshot镜像点列出,供输入选择

 

Listing the last day's Completed Snapshots

 

                                                        Snap

Instance     DB Name        Snap Id    Snap Started    Level

------------ ------------ --------- ------------------ -----

ORA11GR2     ORA11GR2            80 14 Oct 2016 07:00      1

                                 81 14 Oct 2016 08:00      1

                                 82 14 Oct 2016 09:59      1

                                 83 14 Oct 2016 14:36      1

 

 

 

Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

5.我们需要根据列出的时间范围,输入开始和结束的snap编号。

 

Enter value for begin_snap: 80

Begin Snapshot Id specified: 80

 

Enter value for end_snap: 83

 

Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is awrrpt_1_80_83.html.  To use this name,

press <return> to continue, otherwise enter an alternative.

 

6.确定报告名称,最后就是确定生成报告的名称。可以采用默认的名称。

 

Enter value for report_name: wang

Using the report name wang

省略…………………………………………….

<a class="awr" name="8790"></a>

<h3 class="awr">Dynamic Remastering Stats</h3>

 

<p />

                  No data exists for this section of the report.

<p />


<a class="awr" href="#top">Back to Top</a><p />

<p />

End of Report

</body></html>

Report written to wang

SYS@ORA11GR2>

 

7.查看生成的AWR报告目录及文件;

[oracle@wang ~]$ pwd

/home/oracle

[oracle@wang ~]$ ls

appsandstage.dmp  appsandstage.log  BCT  wang.lst

[oracle@wang ~]$

 

具体查看AWR报告方法:

1.在虚拟机内用打开文件夹的方式打开/home/oracle/wang.lst,在虚拟机内查看

2.FXP工具将/home/oracle/wang.lst导出到windows下,然后再用fiirefox浏览器查看。

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

转载于:http://blog.itpub.net/31397003/viewspace-2126498/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值