Automatic Workload Repository,简称AWR,Oracle10g下提供的一种性能收集和分 析工具 ,每60分钟采集 一次 快照 ,存 储着近 期一段时间内(默认 是7天)数据库活动的详细信息。
ASH(Active Session History),以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件,不活动的会话不会采样 。ASH更注重Session的Event跟踪 。在实际生产环境 ,Oracle的等待事件是瞬息万 变的,AWR可能分 析不到最 近五 到十分钟的性能数据,所以可以通过ASH分析最近的会话活动。ASH 内存 记录数据 始终是有 限的,ASH buffers 的最 小值 为1MB,*** 值不超过30MB.为了 保存历史 数据, 引入了AWR。ASH信息 同样被采集 写入到AWR负载库中。 由于内存不是足够的,所以MMNL进程在ASH写满后会将 信息 写出到AWR负载库中。
Automatic Database Diagnostic Monitor ,简称ADDM,Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建 议,给出SQL的优化, 索引 的创建,统计量的收集 等建议。
ASH报告生成:$ORACLE_HOMESQL>@C:appmajbproduct .2.0dbhome_1RDBMSADMINashrpt.sql
AWR报告生成:SQL>C:appmajbproduct .2.0dbhome_1RDBMSADMINawrrpt.sql
ADDM报告生成:SQL>C:appmajbproduct .2.0dbhome_1RDBMSADMINaddmrpt.sql
综上:如果在一个小时以内发生 的我们可以通过生成ASH报告 来找出和性能相关的等待事件和SQL语句 。如果 是1小时以上或几天 我们可以通过AWR报告来找出几小时几天以来最 影响系统的等待事件和SQL语句。ADDM报告基于AWR,默认可以保存30天的ADDM报告
动手实验:AWR报告的生成
在实际的生 产环境 中,AWR除了由Oracle自动生成,也可以通过DBMS_WORKLOAD_REPOSITORY包来 手工创建。
1.手工创建一个数据库快照snapshotSQL> exec dbms_workload_repository.create_snapshot();
2. 生成AWR报告: 依赖一个SQL脚本:X:oracleproduct.2.0db_1RDBMSAdminawrrpt.sql
SQL>@C:appmajbproduct .2.0dbhome_1RDBMSADMINawrrpt.sql
3. 找到AWR报告分析性能瓶颈
4. 补充:通过SQL获取ASHAWRADDM报告
Oracle AWR 补充:
1.生成单实例 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 报告:@$ORACLE_HOME/rdbms/admin/awrgrpt.sql 3.生成 RAC 环境 中特定数据库实例的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpti.sql 4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrgrpti.sql