Orace SQL调优系列ADDM报告简介

网友投稿 605 2022-05-30

我写的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 工具选择

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

对于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 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 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优化》一书:

Oracle SQL

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【愚公系列】2022年01月 Java教学课程 65-网络编程-概念
下一篇:Oracle SQL调优系列之AWRDD报告简介
相关文章