Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152538
  • 博文数量: 39
  • 博客积分: 825
  • 博客等级: 准尉
  • 技术积分: 955
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 14:05
文章分类

全部博文(39)

文章存档

2014年(4)

2013年(13)

2012年(22)

我的朋友

分类: Oracle

2013-01-03 22:01:18

/***************************************************************/
--1.设置addm参数

--查看可用参数(可能不全)
SELECT adp.parameter_name,
       adp.parameter_value,
       adp.parameter_type,
       adp.description
from   dba_advisor_def_parameters adp
WHERE  adp.advisor_name = 'ADDM'
ORDER  BY 1;

--设置接口
BEGIN
  dbms_advisor.set_default_task_parameter(advisor_name =>,
                                          parameter    =>,
                                          value        =>);
END;
/

/***************************************************************/
--2.使用addm分析系统瓶颈

--运行分析
DECLARE
  v_task_name VARCHAR2(300) := 'addm_test_task';
BEGIN
  dbms_addm.analyze_db(task_name      => v_task_name,
                       begin_snapshot => 150,  --snap_id begin
                       end_snapshot   => 151); --snap_id end
END;
/

  11g新特性:另外还有 dbms_addm.analyze_inst dbms_addm.analyze_partial两个接口
分别针对单个实例和部分实例(RAC)进行局部分析,而analyze_db是全局分析。

--得到报告
SELECT dbms_addm.get_report(task_name => 'addm_test_task') rpt FROM dual;

/***************************************************************/
--3.使用addm指示

--addm可用指示列表
SELECT *
FROM   dba_advisor_finding_names afn
WHERE  afn.advisor_name = 'ADDM';

--配置指示后运行addm
DECLARE
  v_task_name VARCHAR2(300) := 'addm_test_task3';
BEGIN
  dbms_addm.insert_finding_directive(task_name           => NULL,
                                     dir_name            => 'addm_dir1',
                                     finding_name        => 'CPU 占用率',
                                     min_active_sessions => 5,
                                     min_perc_impact     => 10);
 
  dbms_addm.analyze_db(task_name      => v_task_name,
                       begin_snapshot => 150,
                       end_snapshot   => 151);
END;
/

--删除指示
BEGIN
  dbms_addm.delete_finding_directive(task_name => NULL,
                                     dir_name  => 'addm_dir1');
END;
/


  PS:一些视图

--实际运行addm时发现的问题
SELECT * FROM dba_advisor_findings;
--addm每次运行后,实例级信息
SELECT * from dba_addm_instances;
--addm任务指示集(预配置)
SELECT * FROM dba_addm_task_directives;
--任务执行信息(系统及手动)
SELECT * from dba_addm_tasks;

/***************************************************************/
--4.总结

  人为巡检时最好参考下addm给出的一些建议,毕竟oracle称她为顾问,你
有时发现不了的问题,可能她会给出一些问题出来;而且对于分析时间跨度
比较大的性能问题,addm有时不失是一种较好的方式。
阅读(1492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~