《Oracle大型数据库系统在AIX/UNIX上的实战详解》集中讨论20, 还是继续大大大大前天的话题——自动工作量资料档案库(AWR),
自动工作量资料档案库(AWR)是在Oracle10gR2后续版本中新增的一项具有工程意义的功能项,该功能着力于问题的自我发现并自我调整。AWR来可以收集、处理、并保存性能统计结果,这种统计数据存放在内存中并随后存储在数据库中,这些数据既能在报告中显示也可以通过视图查询。
AWR收集和处理的统计数据包括:
- 对象统计,用于确定数据库段(表、索引…)的访问情况
- 基于时间的统计:数据库活动统计,这些统计参数通过V$SYS_TIME_MODEL和V_SESS_TIME_MODEL 查询;
- 系统统计:基于系统和会话的统计,这些统计数据可以通过V$SYSSTAT和V$SESSTAT 查询。
- SQL统计:系统中造成高的负载的SQL,这些SQL使用了长的执行时间和CPU时间;
- 激活会话历史(ASH)统计:激活会话信息的历史记录,记录了最近的会话活动历史
AWR将每小时自动抓取一次性能统计数据,并将抓取的性能快照记录在工作载荷记录的代理表中。如果你对Oracle9i较为熟悉,AWR快照和9i中Statspack快照基本类似。和Statspack类似,AWR快照也可以人工创,只是通常不必要这样做。快照抓取后,抓取的结果将由自动数据库诊断监视器( ADDM )分析。
在AWR抓取SQL信息时,AWR将比较以前抓取的SQL语句对性能的影响,并据此有目的的捕捉SQL语句,因此这样的做法减少了需要捕捉的SQL语句。
自动工作量资料档案库(AWR)快照将存储在数据库中,这需要存储空间,其存储空间占用取决于下面的几个因素:
- 当前连接Oralce的激活会话的数目,数目越多,则AWR信息越多;
- AWR快照抓取间隔,默认一小时抓取一次。抓取频率增加,则存储空间占用越多。
- 历史数据的保持期限。显然,保留时间越长,空间占用越多。
缺省的快照捕捉间隔为每小时一次,记录在数据库中保存7天。调整自动工作量资料档案库(AWR) 的快照间隔和保持时期,则其空间占用将降低。但当减少保持期时,Oracle10g中相关的几个Oracle自我管理的特性可能会受影响,例如自动数据库诊断监视器(ADDM)、SQL调节顾问、重做顾问、段顾问等。
为了统计结果尽可能客观、尽可能反映真正的业务载荷分布情况,我们最好将AWR保持期延伸到业务系统运行的一个完整周期。例如,如果业务系统的作业特点是周一到周五作业务,周六、日进行报表操作,则7天是你完整的一个工作周期。同理,你的工作周期可能是一个月,一个季度。由于存储介质的造价在目前的数据库系统环境中已经算是很小的一部分,因此,AWR统计的存储代价并不很高,以存储至少一个业务周期为宜。
当设置快照捕获间隔为0时,AWR的自动收集功能关闭,同时,其他的自动管理功能将同时丧失。因此,不是特殊情况,AWR功能要保留。
Oracle10g中一种特殊的AWR快照统计数据称之为“基线”。称之为特殊的原因是这些AWR快照将长期存储,并作为本系统运行状态的“规范”状态。当系统出现问题时,这些基线将作为性能基准数据。
Oracle10g中STATISTICS_LEVEL 初始化参数必须设置为TYPICAL或ALL,这样AWR将自动抓取快照。如果该参数设置为BASIC,则我们只能手工抓取行性能快照。手工抓取方法是调用 DBMS_WORKLOAD_REPOSITORY 包。但是这样抓出来的统计数据并不全面,因为当STATISTICS_LEVEL 参数值为BASIC时,许多统计数据将不再收集,例如段对象使用统计。显然地,手工抓取统计数据不是一个好的选择。
与传统上的Oracle相比,关于对象的优化器统计仍是一样,仍然是自动获取,默认情况下不必人为介入管理,该工作作为维护窗口的一种预定的工作由DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC 过程执行。
未完,待续,
参见:Oracle联机文档中“性能”部分
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22363020/viewspace-625883/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22363020/viewspace-625883/