Orace SQL调优系列之ADDM报告简介

举报
yd_273762914 发表于 2020/12/02 22:15:29 2020/12/02
【摘要】 我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315 整体分析调优工具 AWR:关注数据库的整体性能的报告;ASH:数据库中的等待事件与哪些SQL具体对应的报告;ADDM:oracle给出的一些建议AWRDD:Oracle针对不同时段的性能对比报告AWRSQRPT:oracle获取统...

我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315

整体分析调优工具

  • AWR:关注数据库的整体性能的报告;
  • ASH:数据库中的等待事件与哪些SQL具体对应的报告;
  • ADDM:oracle给出的一些建议
  • AWRDD:Oracle针对不同时段的性能对比报告
  • AWRSQRPT:oracle获取统计信息与执行计划

不同场景对应工具

局部分析调优工具:

  • explain plan for
  • set autotrace on
  • statistics_level=all
  • 直接通过sql_id获取
  • 10046 trace
  • awrrpt.sql

整体性能工具要点

  • AWR关注点:load profile、efficiency percentages、top 5 time events、SQL Statistics、segment_statistics
  • ASH关注点:等待事件与sql完美结合
  • ADDM:各种建议与对应SQL
  • AWRDD:不同时期 load profile的比较、不同时期等待事件的比较、不同时期TOP SQL的比较
  • AWRSQRPT:获取与关注点(统计信息与执行计划)
select output from table (dbms_workload_repository.awr_report_html(v_dbid,v_instance_number,v_min_snap_id,v_max_snap_id));

  
 
  • 1

相关查询试图:

  • v$session (当前正在发生)
  • v$session_wait(当前正在等待)
  • v$session_wait_history (会话最近的10次等待事件)
  • v$active_session_history (内存中的ASH采集信息,理论为1小时)
  • wrh$_active_session_history (写入AWR库中的ASH信息,理论为1小时以上)
  • dba_hist_active_sess_history (根据wrh$_active_session_history生成的视图)

对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM、AWRDD等等报告,本博客介绍一下ADDM性能分析报告

ADDM全称是Automatic Database Diagnostic Monitor,是Oracle一个实现性能自我诊断的最佳利器。它依赖于AWR,也就是说ADDM要诊断,必要要有诊断的依据。在Oracle中,这个诊断依据就是Oracle AWR,因为Oracle AWR会定期的收集整个数据库在运行期间的性能统计数据。

一、ADDM报告生成

继之前AWR、ASH方面的博客之后,https://smilenicky.blog.csdn.net/article/details/89414432,https://smilenicky.blog.csdn.net/article/details/89419185,我再写一篇ADDM方面的博客:

1.1 工具选择

对于Oracle数据库可以使用sqlplus或者plsql developer客户端软件
sqlplus 使用
可以使用sqlplus工具登录
进入数据库

sqlplus / as sysdba

  
 
  • 1

查看用户

show parameter db_name

  
 
  • 1

用登录之后才可以使用
plsql developer使用
plsql developer也可以使用,登录之后,选择文件(File)->新建(New)->命令窗口(Command Window)
在这里插入图片描述

1.2 自动创建快照

开始压测后执行

exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

  
 
  • 1

可以通过dba_hist_wr_control查看当前的配置情况,当前awr为每1小时做一次数据快照,保留时间为8天。

 select * from dba_hist_wr_control;

  
 
  • 1

在这里插入图片描述
修改配置,每隔30分钟收集一次,保存1天

execute dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>14000);

  
 
  • 1

关闭自动收集

SQL>exec dbms_workload_repository.modify_snapshot_settings (interval=>0,retention=>24*60);

  
 
  • 1

1.3 手工创建快照

除了自动创建快照,也可以手工创建快照

select dbms_workload_repository.create_snapshot() from dual;

  
 
  • 1

1.4 ADDM报告生成

对于sqlplus客户端的可以使用

@?/rdbms/admin/addmrpt.sql

  
 
  • 1

对于plsql客户端,我用绝对路径去执行,@?的命令找不到文件
这个要根据自己的Oracle安装路径去修改,例如:

 @D:/oracle/product/11.1.0/db_1/RDBMS/ADMIN/addmrpt.sql

  
 
  • 1

(1)快照开始id

Enter value for begin_snap:418

要根据日志打印的快照id范围来填,所以我可以填写:418

(2)快照结束id

Enter value for end_snap:420

要根据日志打印的快照id范围来填,所以我可以填写:420

(3)ADDM报告名称

Enter value for report_name

填写ADDM报告的名称,我可以填写addm_20190421.html,然后在打印的日志里有文件保存的路径:,比如:D:\oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\addm.html

SQL> @D:/oracle/product/11.2.0/dbhome_1/RDBMS/ADMIN/addmrpt.sql
Current Instance
~~~~~~~~~~~~~~~~ DBID DB_NAME INST_ INST_NAME
---------- ------------ ----- ------------
1525762377 ORCL 1 orcl
Cannot SET TRIMSPOOL
Cannot SET UNDERLINE
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DBBID INSTT DBB_NAME INSTT_NAME   HOST
------------ ----- ------------ ------------ ------------
* 1525762377 1 ORCL orcl PC-201508171 906
Using 1525762377 for database Id
Using 1 for instance number
PL/SQL procedure successfully completed
dbid
---------
1525762377
inst_num
---------
1
PL/SQL procedure successfully completed
inst_num
---------
1
dbid
---------
1525762377
max_snap_time
---------
18/04/2019
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.
Listing the last 3 days of Completed Snapshots 
INST_NAME DB_NAME SNAP_ID SNAPDAT LV
------------ ------------ -------- ------------------ --
orcl ORCL 417 16 Apr 2019 00:00   1
orcl ORCL 418 16 Apr 2019 19:48   1
orcl ORCL 419 16 Apr 2019 21:00   1
orcl ORCL 420 16 Apr 2019 22:00   1
orcl ORCL 421 16 Apr 2019 23:00   1
orcl ORCL 422 17 Apr 2019 21:20   1
orcl ORCL 423 17 Apr 2019 22:00   1
orcl ORCL 424 17 Apr 2019 23:00   1
orcl ORCL 425 18 Apr 2019 00:00   1
orcl ORCL 426 18 Apr 2019 21:26   1
orcl ORCL 427 18 Apr 2019 22:00   1
11 rows selected
dbid
---------
1525762377
inst_num
---------
1
max_snap_time
---------
18/04/2019
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Begin Snapshot Id specified: 418
End   Snapshot Id specified: 420
PL/SQL procedure successfully completed
bid
---------
418
eid
---------
420
PL/SQL procedure successfully completed
inst_num
---------
1
dbid
---------
1525762377
bid
---------
418
eid
---------
420
Cannot SET TRIMSPOOL
Cannot SET UNDERLINE
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is addmrpt_1_418_420.txt.  To use this name,
press <return> to continue, otherwise enter an alternative.
Using the report name addm.html 
Running the ADDM analysis on the specified pair of snapshots ...
bid
---------
418
eid
---------
420
inst_num
---------
1
dbid
---------
1525762377
task_name
---------
TASK_953
Generating the ADDM report for this analysis ...
Started spooling to D:\oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\addm.html ADDM Report for Task 'TASK_953' -------------------------------
Analysis Period
---------------
AWR snapshot range from 418 to 420.
Time period starts at 16-APR-19 07.48.09 PM
Time period ends at 16-APR-19 10.00.20 PM
Analysis Target
---------------
Database 'ORCL' with DB ID 1525762377.
Database version 11.2.0.1.0.
ADDM performed an analysis of instance orcl, numbered 1 and hosted at
PC-201508171906.
Activity During the Analysis Period
-----------------------------------
Total database time was 57 seconds.
The average number of active sessions was .01.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are no findings to report.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Additional Information ----------------------
Miscellaneous Information
-------------------------
There was no significant database activity to run the ADDM.
The database's maintenance windows were active during 99% of the analysis
period.
task_name
---------
TASK_953
Stopped spooling to D:\oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\addm.html
End of Report
Report written to addm.html.

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146

二、ADDM报告性能分析

ADDM性能报告是从数据库的整体配置和局部SQL方面给出建议,阅读时候按FINDING1,FINDING2,…,的顺序阅读就好
在这里插入图片描述

下面的图来自《收获,不止SQL优化》一书:
在这里插入图片描述

文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。

原文链接:smilenicky.blog.csdn.net/article/details/89429827

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。