本文摘自otn和www.psoug.org Oracle 在10g以前的使用的是 Statspack做性能故障诊断的。Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR)。AWR 和数据库一起安装。数据库装好后,,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次(snap) 要查看当前的设置,您可以使用下面的语句:
select snap_interval, retention from dba_hist_wr_control; SNAP_INTERVAL RETENTION ------------------- ------------------- +00000 01:00:00.0 +00007 00:00:00.0
这些 SQL 语句显示快照每小时采集一次,采集的数据保留 7 天。要修改设置 — 例如,快照时间间隔为 20 分钟,保留时间为两天 — 您可以发出以下命令。参数以分钟为单位。
begin dbms_workload_repository.modify_snapshot_settings ( interval => 20, retention => 2*24*60 ); end;
AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为 SYSAUX 的特定表空间中的 SYS 模式下,并且以 WRM$_* 和 WRH$_* 的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。(您可能已经猜到,H 代表“历史数据 (historical)”而 M 代表“元数据 (metadata)”。)在这些表上构建了几种带前缀 DBA_HIST_ 的视图,这些视图可以用来编写您自己的性能诊断工具。视图的名称直接与表相关;例如,视图 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上构建的。 AWR 历史表采集的信息比 Statspack 多许多,这些信息包括表空间使用率、文件系统使用率、甚至操作系统统计数据。这些表的完整的列表可以从数据字典中看到。 dba最常用的估计就是这个了
exec dbms_workload_repository.create_snapshot; 应用; exec dbms_workload_repository.create_snapshot; @?/rdbms/admin/awrrpt 生成报告,html和text格式都可以
Version 10.2
AWR Objects Source {ORACLE_HOME}/rdbms/admin/dbmsawr.sql First Availability 10.1 Background Process MMON - Automatic data purging every 7 days by default Constants
Name Retention Data Type Value MAX_INTERVAL 100 years NUMBER 52560000 MIN_INTERVAL 10 minutes NUMBER 10 MAX_RETENTION 100 years NUMBER 52560000 MIN_RETENTION 1 day NUMBER 1440
Data Types AWRRPT_TEXT_TYPE AWRRPT_HTML_TYPE AWRRPT_TEXT_TYPE_TABLE AWRRPT_HTML_TYPE_TABLE SYS AWRRPT_ROW_TYPE Dependencies
dba_hist_baseline dba_hist_snapshot - - awrrpt_html_type plitblm awrrpt_html_type_table wrm$_baseline awrrpt_text_type wrm$_snapshot awrrpt_type_table wrm$_snap_error dbms_swrf_lib wrm$_wr_control dbms_swrf_report_internal
AWR_REPORT_HTML Display the AWR report in HTML dbms_workload_repository.awr_report_html( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_text_type_table PIPELINED; awrrpt_text_type_table is VARCHAR2(150) See AWR Report demo linked at the bottom of the page AWR_REPORT_TEXT Display the AWR report in ASCII text dbms_workload_repository.awr_report_text( l_dbid IN NUMBER, l_inst_num IN NUMBER, l_bid IN NUMBER, l_eid IN NUMBER, l_options IN NUMBER DEFAULT 0) RETURN awrrpt_text_type_table PIPELINED; awrrpt_text_type_table is VARCHA