Oracle 10 AWR(Automatic Workload Repository)是Oracle数据库中用于性能调优的一个重要工具。它可以收集数据库实例在一段时间内的性能统计信息,统计信息的数据包括系统、SQL执行情况、系统事件等,让管理员可以从多个维度了解数据库的性能瓶颈,并针对性地进行优化。
AWR主要提供了两种方式来收集性能统计信息:一是使用awrrpt.sql脚本来创建AWR报告;二是使用awrload.sql脚本来将AWR数据加载到另一个实例中。下面我们分别来介绍这两种方式。
$ sqlplus / as sysdbaSQL>@?/rdbms/admin/awrrpt.sql
通过执行以上脚本可以生成AWR报告。这个AWR报告可以帮助我们了解数据库的性能瓶颈及其原因。例如,在AWR报告中我们可以看到哪些SQL执行代价过大、哪些事件占用了大部分系统资源、哪些等待事件占用了过多的时间等等。通过这些统计信息,我们可以有针对性地进行优化。
$ sqlplus / as sysdbaSQL>@?/rdbms/admin/awrload.sql
通过执行以上脚本,可以将从一个实例中收集到的AWR数据加载到另一个实例中。这个功能大多用于数据库迁移、数据复制等场景下,以便更好地进行性能优化。
除了以上两种常用方式外,AWR还可以通过修改数据库参数来设置自动定期收集AWR数据的间隔时间和保留时间。例如:
SQL>alter system set statistics_level=all;SQL>alter system set control_management_pack_access=diagnostic;SQL>alter system set retention_days=7;
以上代码告诉Oracle数据库开启了完整的性能统计信息收集功能,开启了完全的诊断包访问权限,并设置了保留时间为7天。在这7天时间内,数据库会自动每小时收集一次AWR数据,以便管理员对数据库的性能进行监控和优化。
总之,Oracle 10 AWR是数据库性能调优中必不可少的一个工具。了解AWR的使用方式,对于数据库管理员和运维人员均非常重要。