ITPub博客

首页 > 数据库 > 数据库开发技术 > AWR --生成AWR报表

AWR --生成AWR报表

原创 数据库开发技术 作者:wenxin2005 时间:2011-11-29 13:11:23 0 删除 编辑

1. generate AWR report, AWR可以支持HTML .TXT格式的报表

cd $ORACLE_HOME/rdbms/admin

@awrrpt.sql

2.生成指定数据库实例的统计报表

@$ORACLE_HOME/rdbms/admin/awrrpti.sql

3. 生成指定SQL语句的统计报表

这项统计专门用来分析某条指定的SQL语句,通过awrsqrpt.sql脚本,awr能够生成指定sql(曾经执行过的SQL)的执行计划,消耗的资源等等信息,有助于DBA进行SQL调优。

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

4. 生成不同时间段时的统计对比报表

  在没有awr之前,如果希望对不同时间段时,数据库的整体影响进行对比,只能依靠DBA手工查询相关视图,并通过时间条件来获取差异(还有些统计已经无法对比),而在AWR中,直接就提供了,对不同时间段时,数据库的性能统计做差异对比的功能。

SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql

Enter value for num_days: 2 --选择需要生成报表的时间区间

Listing the last 2 days of Completed Snapshots

5. 查看AWR视图

SQL> select * from dict where table_name like ¨DBA_HIST%¨;

  • V$ACTIVE_SESSION_HISTORY

  该视图由ASH自动维护,以每秒一次的频率收集当前系统中活动session的信息。虽然说是记录SESSION的历史记录,不过该视图与V$SESSION还是有差异的。

  • DBA_HIST_ACTIVE_SESS_HISTORY

  该视图与V$ACTIVE_SESSION_HISTORY的结构很象,功能也比较类似,都是记录活动session的操作记录,所不同点在于,V$ACTIVE_SESSION_HISTORY是ORACLE自动在内存中维护的,受制于其可用内存区限制,并非所有记录都能保存,而DBA_HIST_ACTIVE_SESS_HISTORY视图则是维护到磁盘中的。简单理解的话,就是说通常情况下,DBA_HIST_ACTIVE_SESS_HISTORY视图的数据量要比V$ACTIVE_SESSION_HISTORY的多。

  • DBA_HIST_DATABASE_INSTANCE

  该视图用来显示数据库和实例的信息,比如DBID,实例名,数据库版本等等信息,生成报表中第一行表格,就是由该视图生成的

SQL> select distinct
2 (case when cd.dbid = wr.dbid and
3 cd.name = wr.db_name and
4 ci.instance_number = wr.instance_number and
5 ci.instance_name = wr.instance_name
6 then '* '
7 else ' '
8 end) || wr.dbid dbbid
9 , wr.instance_number instt_num
10 , wr.db_name dbb_name
11 , wr.instance_name instt_name
12 , wr.host_name host
13 from dba_hist_database_instance wr, v$database cd, v$instance ci;

DBBID INSTT_NUM DBB_NAME INSTT_NAME HOST
------------------------------------------ ---------- --------- ---------------- ------------------------------- 1501573165 1 EDADB EDADB1 zged4a
* 1501573165 2 EDADB EDADB2 zged4b
1501573165 1 EDADB EDADB2 zged4b

  • DBA_HIST_SNAPSHOT

  该视图用来记录当前数据库收集到的快照信息。相信朋友应该还记得之前使用脚本生成报表时,输入完快照区间后显示的一堆列表,没错,那正是DBA_HIST_SNAPSHOT记录的内容,看看如下代码:

select to_char(s.startup_time,'dd Mon "at" HH24:mi:ss') instart_fmt
, di.instance_name inst_name
, di.db_name db_name
, s.snap_id snap_id
, to_char(s.end_interval_time,'dd Mon YYYY HH24:mi') snapdat
, s.snap_level lvl
from dba_hist_snapshot s
, dba_hist_database_instance di
where s.dbid = :dbid
and di.dbid = :dbid
and s.instance_number = :inst_num
and di.instance_number = :inst_num
and di.dbid = s.dbid
and di.instance_number = s.instance_number
and di.startup_time = s.startup_time
and s.end_interval_time >= decode( &num_days
, 0 , to_date('31-JAN-9999','DD-MON-YYYY')
, 3.14, s.end_interval_time
, to_date(:max_snap_time,'dd/mm/yyyy') - (&num_days-1))
order by db_name, instance_name, snap_id;

6. snapshot

a) 手动创建一个snapshot

    SQL> exec dbms_workload_repository.create_snapshot();

    PL/SQL procedure successfully completed.

    SQL> select count(0) from dba_hist_snapshot where snap_id <= 2501 ;

    COUNT(0)

    ----------

    10

    SQL> begin

    2 dbms_workload_repository.drop_snapshot_range(

    3 low_snap_id => 2480,

    4 high_snap_id => 2501

    5 dbid => 1501573165 );

    6 end;

    7 /

    PL/SQL procedure successfully completed.

    SQL> select count(0) from dba_hist_snapshot where snap_id between <=2501;

    COUNT(0)

    ----------

    0

c) 修改Snapshots设置

--check the configuration of snapshot

select * from dba_hist_wr_control;

--change interval

exec dbms_workload_repository.modify_snapshot_settings(interval=>120);

PL/SQL procedure successfully completed

d) 创建Baseline

SQL> select dbid,baseline_name,start_snap_id,end_snap_id from dba_hist_baseline;

DBID BASELINE_NAME START_SNAP_ID END_SNAP_ID
---------- ---------------------------------------------------------------- ------------- -----------
1501573165 AWR_1225896489989 7650 7841

--create baseline

BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => 'test_baseline',
cascade => true);
END;
/

SQL> e) 删除Baseline

BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => 'test_baseline',
cascade => true);
END;
/

b) 手动删除一个snapshot[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/573930/viewspace-1056598/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ssh-keygen -t rsa
下一篇: crontab
请登录后发表评论 登录
全部评论
  • 博文量
    15
  • 访问量
    15830