Oracle数据库AWR的使用实例详解_Oracle_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > Oracle > Oracle数据库AWR的使用实例详解

Oracle数据库AWR的使用实例详解

 2013/8/10 1:23:18    程序员俱乐部  我要评论(0)
  • 摘要:上次我们介绍了:Oracle数据库中AWR的组成及工作原理的详细介绍,本文我们详细介绍一下AWR的使用,接下来就让我们来一起了解一下这部分内容。AWR由ORACLE自动产生,但是也可以通过DBMS_WORKLOAD_REPOSITORY包来手工创建、删除和修改。可以使用desc命令查看该包中的过程。下面只介绍几个常用的:1.手工创建一个快照SQL>selectcount(*)fromwrh$_active_session_history;COUNT(*)---------
  • 标签:详解 使用 ORA 数据库 数据 实例 Oracle Oracle数据库

上次我们介绍了:Oracle数据库AWR的组成及工作原理的详细介绍,本文我们详细介绍一下AWR的使用,接下来就让我们来一起了解一下这部分内容。

AWR由ORACLE自动产生,但是也可以通过DBMS_WORKLOAD_REPOSITORY包来手工创建、删除和修改。可以使用desc命令查看该包中的过程。下面只介绍几个常用的:

1.手工创建一个快照

    class="dp-xml">
  1. SQL> select count(*) from wrh$_active_session_history;  
  2.  
  3. COUNT(*)  
  4.  
  5. ----------  
  6.  
  7. 317  
  8.  
  9. SQL> begin  
  10.  
  11. 2 dbms_workload_repository.create_snapshot();  
  12.  
  13. 3 end;  
  14.  
  15. 4 /  
  16.  
  17. PL/SQL 过程已成功完成。  
  18.  
  19. SQL> select count(*) from wrh$_active_session_history;  
  20.  
  21. COUNT(*)  
  22.  
  23. ----------  
  24.  
  25. 320 

2.手工删除指定范围的快照

  1. SQL> select * from wrh$_active_session_history where snap_id = 96;  
  2.  
  3. SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME  
  4.  
  5. ---------- ---------- --------------- ---------- ----------------------------  
  6.  
  7. 96 1160732652 1 236930 06-10月-07 11.26.04.562 上午  
  8.  
  9. 96 1160732652 1 236930 06-10月-07 11.26.04.562 上午  
  10.  
  11. 96 1160732652 1 236930 06-10月-07 11.26.04.562 上午  
  12.  
  13. SQL> begin  
  14.  
  15. 2 dbms_workload_repository.drop_snapshot_range(low_snap_id => 96, high_snap_id => 96, dbid => 1160732652);  
  16.  
  17. 3 end;  
  18.  
  19. 4 /  
  20.  
  21. PL/SQL 过程已成功完成。  
  22.  
  23. SQL> select * from wrh$_active_session_history where snap_id = 96;  
  24.  
  25. 未选定行 

3.修改采集时间和统计信息保留时间

  1. PROCEDURE MODIFY_SNAPSHOT_SETTINGS  
  2.  
  3. 参数名称类型输入/输出默认值?  
  4.  
  5. ------------------------------ --- 
  6.  
  7. RETENTION NUMBER IN DEFAULT  
  8.  
  9. INTERVAL NUMBER IN DEFAULT  
  10.  
  11. TOPNSQL NUMBER IN DEFAULT  
  12.  
  13. DBID NUMBER IN DEFAULT 

通过修改retention参数可以修改awr信息的保留期限。默认的是七天,最小的值是一天。如果把retention设置为零,自动清除就关闭了.如果awr发现sysaux空间不够,它通过删除那些最老部分的快照来重新使用这些空间.同时,也会给dba发一条警告,告诉sysaux空间不够了(在警告日志中)。

通过修改interval参数可以修改awr信息的采样频率。最小的值是10分钟,默认的是60分钟.典型的值是10,20,30,60,120等等。把interval设为0则关闭自动捕捉快照.如将收集间隔时间改为30 分钟一次。并且保留5天时间(注:单位都是为分钟):

  1. SQL> select *from dba_hist_wr_control;  
  2.  
  3. DBID SNAP_INTERVAL RETENTION TOPNSQL  
  4.  
  5. ---------- ------------------ -------------------------- -----------  
  6.  
  7. 1160732652 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT  
  8.  
  9. SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);  
  10.  
  11. PL/SQL 过程已成功完成。  
  12.  
  13. SQL> SELECT *from dba_hist_wr_control;  
  14.  
  15. DBID SNAP_INTERVAL RETENTION TOPNSQL  
  16.  
  17. ---------- ------------------- ------------------------- -----------  
  18.  
  19. 1160732652 +00000 00:30:00.0 +00005 00:00:00.0 DEFAULT  
  20.  
  21. SQL> 

4.设置基线

基线(baseline)是一种机制,这样你可以在重要时间的快照信息集做标记。一个基线定义在一对快照之间,快照通过他们的快照序列号识别.每个基线有且只有一对快照。

一次典型的性能调整实践从采集量度的基准线集合、作出改动、然后采集另一个基准线集合开始。可以比较这两个集合来检查所作的改动的效果。在 AWR 中,对现有的已采集的快照可以执行相同类型的比较。

假定一个名称为 apply_interest 的高度资源密集的进程在下午 1:00 到 3:00 之间运行,对应快照 ID 95 到 98。我们可以为这些快照定义一个名称为 apply_interest_1 的基准线:

  1. SQL> select *From dba_hist_baseline;  
  2.  
  3. 未选定行  
  4.  
  5. SQL> select * from wrm$_baseline;  
  6.  
  7. 未选定行  
  8.  
  9. SQL> exec dbms_workload_repository.create_baseline(95, 98, 'apply_interest_1');  
  10.  
  11. PL/SQL 过程已成功完成。 

这一操作将快照从 95 到 98 编号,作为上面指定的基准线的一部分。查看现有的基准线:

  1. SQL> select *from dba_hist_baseline;  
  2.  
  3. DBID BASELINE_ID BASELINE_NAME START_SNAP_ID START_SNAP_TIME END_SNAP_ID END_SNAP_TIME  
  4.  
  5. ---------- ----------- ------------------------- ------------- ------------------------------------- ----------- ------------  
  6.  
  7. 1160732652 1 apply_interest_1 95 06-10月-07 11.00.05.375 上午 98 06-10月-07 01.44.58.062 下午  
  8.  
  9. SQL> select *from wrm$_baseline;  
  10.  
  11. DBID BASELINE_ID BASELINE_NAME START_SNAP_ID END_SNAP_ID  
  12.  
  13. ---------- ----------- ---------------------------- ------------- -----------  
  14.  
  15. 1160732652 1 apply_interest_1 95 98  
  16.  
  17. SQL> 

在一些调整步骤之后,我们可以创建另一个基准线 — 假设名称为 apply_interest_2,然后只为那些与这两条基准线相关的快照比较量度。

  1. SQL> exec dbms_workload_repository.create_baseline(92, 94, 'apply_interest_2');  
  2.  
  3. PL/SQL 过程已成功完成。 

像这样把快照分隔在仅仅几个集合中有助于研究调整对于性能量度的影响。您可以在分析之后使用 drop_baseline() 来删除基准线;快照将保留(也可级联删除)。此外,当清除例程开始删除旧的快照时,与基准线相关的快照不会被清除,从而允许进行进一步的分析。

5.删除基线

如果要删除一个基准线:

  1. SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'apply_interest_1', cascade=>false);  
  2.  
  3. PL/SQL 过程已成功完成。  
  4.  
  5. SQL> select *from wrh$_active_session_history where snap_id in (95,96,97,98);  
  6.  
  7. SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME  
  8.  
  9. ---------- ---------- --------------- ---------- -------------------------------  
  10.  
  11. 95 1160732652 1 235360 06-10月-07 10.56.29.872 上午  
  12.  
  13. 95 1160732652 1 235230 06-10月-07 10.54.19.857 上午  
  14.  
  15. 95 1160732652 1 233130 06-10月-07 10.19.19.478 上午  
  16.  
  17. 95 1160732652 1 232830 06-10月-07 10.14.18.859 上午  
  18.  
  19. 95 1160732652 1 232250 06-10月-07 10.04.38.481 上午  
  20.  
  21. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  22.  
  23. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  24.  
  25. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  26.  
  27. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  28.  
  29. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  30.  
  31. 97 1160732652 1 238600 06-10月-07 12.33.08.420 下午  
  32.  
  33. SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME  
  34.  
  35. ---------- ---------- --------------- ---------- -------------------------------  
  36.  
  37. 97 1160732652 1 238420 06-10月-07 11.50.55.686 上午  
  38.  
  39. 97 1160732652 1 238230 06-10月-07 11.47.45.687 上午  
  40.  
  41. 98 1160732652 1 239140 06-10月-07 01.42.00.976 下午  
  42.  
  43. 98 1160732652 1 239140 06-10月-07 01.42.00.976 下午  
  44.  
  45. 98 1160732652 1 239140 06-10月-07 01.42.00.976 下午  
  46.  
  47. 98 1160732652 1 239140 06-10月-07 01.42.00.976 下午  
  48.  
  49. 98 1160732652 1 239140 06-10月-07 01.42.00.976 下午  
  50.  
  51. 98 1160732652 1 239130 06-10月-07 01.27.04.161 下午  
  52.  
  53. 98 1160732652 1 239130 06-10月-07 01.27.04.161 下午  
  54.  
  55. 98 1160732652 1 239130 06-10月-07 01.27.04.161 下午  
  56.  
  57. 已选择21行。  
  58.  
  59. SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'apply_interest_2', cascade=>true);  
  60.  
  61. PL/SQL 过程已成功完成。  
  62.  
  63. SQL> select *from wrh$_active_session_history where snap_id in (92,93,94);  
  64.  
  65. 未选定行  
  66.  
  67. SQL> 

以上就是一些Oracle数据库AWR的使用的详细操作,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

发表评论
用户名: 匿名