前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试825】在Oracle中,如何获取ADDM报告?

【DB笔试面试825】在Oracle中,如何获取ADDM报告?

作者头像
小麦苗DBA宝典
发布2020-06-24 15:13:59
1.3K0
发布2020-06-24 15:13:59
举报

题目部分

【DB笔试面试825】在Oracle中,如何获取ADDM报告?

答案部分

有两种办法可以获取ADDM报告:

(1) 采用addmrpt.sql脚本。运行脚本:@?/rdbms/admin/addmrpt.sql

(2) 采用DBMS_ADVISOR包:

代码语言:javascript
复制
DECLARE
  TASK_NAME VARCHAR2(50) := 'HEALTH_CHECK_BY_LHR';
  TASK_DESC VARCHAR2(50) := 'HEALTH_CHECK_BY_LHR';
  TASK_ID   NUMBER;
BEGIN
  DBMS_ADVISOR.CREATE_TASK('ADDM', TASK_ID, TASK_NAME, TASK_DESC, NULL);
  DBMS_ADVISOR.SET_TASK_PARAMETER(TASK_NAME, 'START_SNAPSHOT', &_SNAP_ID);
  DBMS_ADVISOR.SET_TASK_PARAMETER(TASK_NAME, 'END_SNAPSHOT', &_SNAP_ID1);
  DBMS_ADVISOR.SET_TASK_PARAMETER(TASK_NAME, 'INSTANCE', &_INSTANCE_NUMBER);
  DBMS_ADVISOR.SET_TASK_PARAMETER(TASK_NAME, 'DB_ID', &_DBID);
  DBMS_ADVISOR.EXECUTE_TASK(TASK_NAME);
END;
/
SELECT DBMS_ADVISOR.GET_TASK_REPORT('HEALTH_CHECK_BY_LHR', 'TEXT', 'ALL') ADDM_RESULTS FROM DUAL;

SELECT * FROM DBA_ADDM_TASKS T ORDER BY T.TASK_ID;
SELECT * FROM DBA_ADVISOR_TASKS T ORDER BY T.TASK_ID;
SELECT DBMS_ADVISOR.GET_TASK_REPORT('HEALTH_CHECK_BY_LHR', 'TEXT', 'ALL') ADDM_RESULTS FROM DUAL;

其中,存储过程SET_TASK_PARAMETER是用来设置任务参数的。START_SNAPSHOT是起始快照ID,END_SNAPSHOT是结束快照ID,INSTANCE是实例号,对于单实例,一般是1,在RAC环境下,可以通过查询视图GVINSTANCE得到,DB_ID是数据库的唯一识别号,可以通过查询VDATABASE查到。

若普通用户使用DBMS_ADVISOR包获取ADDM报告,则必须使用SYS给这个普通用户赋予如下权限:

代码语言:javascript
复制
GRANT EXECUTE ON DBMS_ADVISOR TO USER_LHR;
GRANT ADVISOR TO USER_LHR;

& 说明:

有关ADDM的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140642/

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档