Automatic Workload Repository (AWR) 收集、处理和维护用于问题诊断的性能统计信息。该数据既存在于数据块中,也存在于内存中。AWR 收集的数据能够经过报告和视图进行查看。html
AWR 处理和收集的统计信息包括:数据库
一、肯定数据块 segment 访问路径和使用状况的对象统计信息session
二、基于数据库活动的时间使用状况的时间模型统计信息,可在 V$SYS_TIME_MODEL 和 V$SESS_TIME_MODEL 视图中查看oracle
三、V$SYSSTAT 和 V$SESSTAT 视图中收集的一些 sytem 和 session 的统计信息ide
四、按照 elapsed time 和 CPU time 等条件在系统上筛选出的产生较高负载的 SQL 语句性能
五、ASH 统计信息——最近的 session 活动的历史记录测试
数据库默认状况下已启用 AWR 收集统计信息,它 STATISTICS_LEVEL 初始化参数来控制。STATISTICS_LEVEL 参数必须设置为 TYPICAL 或 ALL 才能启用 AWR 统计信息收集。默认的设置为 TYPICAL。将 STATISTICS_LEVEL 设置为 BASIC 将禁用许多 Oracle Database 功能,包括 AWR,因此不推荐这么设置。当 STATISTICS_LEVEL 设置为 BASIC 时,仍然可使用 DBMS_WORKLOAD_REPOSITORY 包手动捕获 AWR 统计信息。可是许多在内存中收集的系通通计信息,如 segment 统计信息和 memory advisor 信息都将被禁用,这种状况下的手动快照捕获的统计信息可能不是完整的。视频
一、Snapshothtm
快照是 ADDM 用于性能比较的特定时期内的历史数据集合。在 11g 中,Oracle Database 每小时会自动生成性能数据的快照,并将这些统计信息在工做负载信息库中保留 8 天。您也能够手动建立快照,其实不必这么作。快照间隔内的统计信息由 Automatic Database Diagnostic Monitor (ADDM) 进行分析。对象
AWR 经过比较各个快照之间的差别,根据对系统负载的影响来肯定要捕获的 SQL 语句,随着时间的发展,必须捕获的 SQL 语句将逐渐减小。
二、Baseline
Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其余相似的工做负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并没有限期的保留。
在 Oracle Database 中存在多种类型的 baseline;
Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在建立 fixed baseline 以前,请认真考虑您选做 baseline 的时间段,由于该 baseline 应该表明系统处于良好的性能下运行。您能够在未来将该 baseline 与在性能较差的时间段捕获的其余 baseline 或 snapshot 进行比较分析。
Moving Window Baseline:表示的是 AWR 保留期内存在的全部 AWR 数据。在使用自适应阈值时,它很是有用,由于数据库可使用整个 AWR 保留期内的 AWR 数据来计算指标值。
Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。若是您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您能够从新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。所以,要增长移动窗口的大小,必需要先增长相应的 AWR 保留期限。
Baseline Template:您可使用 baseline template 建立未来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating
利用 single baseline template,您能够为未来某个单独的连续时间段建立 baseline。该技术在某些状况下很是有用。例如,若是您想捕获下周计划的系统测试期间的 AWR 数据,您能够建立一个 single baseline template 来自动捕获测试发生的时间段的统计数据。
利用 repeating baseline template ,能够根据重复的时间计划建立和删除 baseline。当您但愿 Oracle Database 自动持续地捕获连续时间段的统计数据时,这很是有用。例如,您可能须要在长达一个月内捕获每周一早上的 AWR 数据。在这种状况下,您能够建立一个 repeating baseline template ,以在每周一自动建立 baseline,在指定的过时期限内自动删除过期的 baseline
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html