一、什么是AWR(自动工作量资料档案库)
• 内置的性能信息资料档案库
• 所有自我管理功能的基础
• 保留期:默认八天
• 收集间隔:默认60分钟
• 收集级别:
– Basic(禁用多数 ADDM 功能,自优化功能被禁用)
– Typical(建议级别,默认)
– All(将其它 SQL 优化信息添加到快照中)
基本结构
• 一个内存中统计信息收集工具,Oracle Database 11g组件使用它来收集统计信息。出于性能方面的考虑,这些统计信息存储在内存中。可以通过动态性能(V$) 视图访问存储在内存中的统计信息。
• 代表该工具持久部分的AWR 快照。AWR 快照可以通过数据字典视图和EnterpriseManager Database Control 来访问。
它为内部Oracle 服务器组件提供服务来收集、处理、维护和使用性能统计信息,以便进行问题检测和自优化。
AWR 中包含数百个表,所有这些表均属于SYSMAN方案且存储在SYSAUX表空间中。
二、AWR的设置
1、查看快照保留期、收集间隔的设置
select * from dba_hist_wr_control;
interval:收集快照的时间间隔。上图为1小时收集一次。
将间隔设置为0时,oracle将禁止采用自动和手工快照的机制。
retention:快照的保存时间。上图为8天。
当保存时间设置为0时,oracle将永久地保存这个快照。
Topnsql :指定收集的比较占用资源的SQL数量,可设置的值最小为30,最大不超过100000000。
2、修改快照保留期、收集间隔的设置
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
Retention IN NUMBER DEFAULT NULL,
Interval IN NUMBER DEFAULT NULL,
topnsql IN NUMBER DEFAULT NULL);
Retention保留天数,快照默认是7天
Interval快照设置多少分钟收集一次,默认1小时,最小10分钟,最大100年
Topnsql top几的SQL。
(注:单位都是为分钟)
例子:修改为间隔30分钟,保存15天:
exec dbms_workload_repository.modify_snapshot_settings(retention => 15*24*60,interval => 30);
3、查看快照收集级别
show parameter STATISTICS_LEVEL
二、快照
1、查看所有快照
select * from dba_hist_snapshot order by snap_id desc;
2、创建快照
exec dbms_workload_repository.create_snapshot();--调用MMON进程立即收集快照
3、删除快照
exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 628,high_snap_id => 630);
4、生成AWR报告
@?/rdbms/admin/awrrpt.sql;
三、基线
基线的作用是将一段时间的快照保存下来,以便日后查看,即使是超过快照的保存时间,基线所指定的快照也不会删除。
1、查看基线
select * from dba_hist_baseline;
2、创建基线
dbms_workload_repository.create_baseline(start_snap_id => 108,end_snap_id => 109,baseline_name => 'base line');
3、删除基线
dbms_workload_repository.drop_baseline(baseline_name => 'base line');
dbms_workload_repository.drop_baseline(baseline_name => 'base line',cascade => true);
删除时指定了cascade参数值为true,对应的快照也被级联删除了
四、关于报告的解读
1、Buffer Nowait% ,Buffer Hit%
Buffer 没有等待的时间,越大越好
hit命中率,越大越好。
在一个使用直接读执行大型并行查询的DSS环境,20%的Buffer Hit Ratio是可以接受的,而这个值对于一个OLTP系统是完全不能接受的,要90%。