ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 10G特性之awr

oracle 10G特性之awr

原创 Linux操作系统 作者:space6212 时间:2019-04-21 13:06:06 0 删除 编辑
oracle推出已经2年多了,但只在04年用过几个月,之后接触的数据库大部分是8i和9i,所以,很多10g的新特性没有接触到。
现在有时间可以学习10g了。打算用一系列的文章来记录学习10g新特性的心得。

一、概述
awr(Automatic Workload Repository)是oracle 10g推出的一个强有力的信息收集工具,它比之前的statspack有显著的改进,收集的信息也更多、更全面,使用方法也更简单。

二、安装
awr是默认安装的,装好了10g的数据库就已经可以使用awr了。

三、配置
awr默认每个小时收集一次统计信息,并且保留7天的数据。awr配置信息可以从以下视图查询:
SQL> select * from dba_hist_wr_control;

DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- ---------------------------- ----------------------- ----------
3939087858 +00000 00:10:00.0 +00002 00:00:00.0 DEFAULT

awr与statspack不同,它不是由job来调度的,而是由MMON来定期收集的。

SQL> show parameter job

NAME TYPE VALUE
-------------------------- ----------- --------------------
job_queue_processes integer 10

SQL> select count(1) from dba_jobs;

COUNT(1)
----------
0

我们可以用dbms_workload_repository.modify_snapshot_settings来修改默认配置
SQL> desc dbms_workload_repository.modify_snapshot_settings
Parameter Type Mode Default?
--------- -------- ---- --------
RETENTION NUMBER IN Y --设定awr信息保留多长时间,单位是分钟,默认是60分钟
INTERVAL NUMBER IN Y --设定收集时间间隔,单位是分钟,默认是1周
TOPNSQL NUMBER IN Y --设定取多少条耗费资源的sql
DBID NUMBER IN Y

如把awr设置为10分钟收集一次、每次收集50条耗费资源的sql,并保留2天的收集数据,可以用如下方式修改
SQL> exec dbms_workload_repository.modify_snapshot_settings(2*24*60,10,50);

PL/SQL procedure successfully completed

可以看出配置已经改变
SQL> select * from dba_hist_wr_control;

DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------------- ----------------------- ----------
3939087858 +00000 00:10:00.0 +00002 00:00:00.0 50


四、生成报表
1、调用脚本
和statspack一样,awr也提供一个脚本来生成报表。报表的形式有两种:text和html。强烈建议生成html格式的报表,可读性非常强。
脚本位置和名称:$ORACLE_HOME/rdbms/admin/awrrpt.sql
用脚本生成awr报表的过程与生成statspack报表非常类似,你需要以sys用户执行这个脚本,执行过程需要输入报表类型、天数(用来决定显示那几天内的snapshot)、begin_snap、end_snap、以及报表名称等5个参数。
如果不不想手工输入参数,你可以修改$ORACLE_HOME/rdbms/admin/awrrpti.sql文件,把需要到的5个变量设置好,在执行过程就不用输入了。
修改awrrpti这个脚本可以让你自动生成报表。

2、直接用函数
oracle提供2个函数来生成对应的报表:
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT :生成text报表
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML :生成html报表

比如:
执行:select * from table(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(3939087858,1,2,3));
此时在屏幕上就打印出相关的信息。

其实$ORACLE_HOME/rdbms/admin/awrrpt.sql就是通过调用以上两个函数来生成报表的。


五、如何读懂报表
awr产生的报表和statspack报表有点类似,要真正读懂它,需要下很大的工夫,具体的介绍可以看:


这里就不表述了。

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

上一篇: oracle压缩表(二)
请登录后发表评论 登录
全部评论

注册时间:2005-01-25

  • 博文量
    245
  • 访问量
    211307