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

对于局部的,比如某个页面列表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

查看用户

show parameter db_name

用登录之后才可以使用

plsql developer使用

plsql developer也可以使用,登录之后,选择文件(File)->新建(New)->命令窗口(Command Window)

1.2 自动创建快照

开始压测后执行

exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

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

 select * from dba_hist_wr_control;



修改配置,每隔30分钟收集一次,保存1天

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

关闭自动收集

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

1.3 手工创建快照

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

select dbms_workload_repository.create_snapshot() from dual;

1.4 ADDM报告生成

对于sqlplus客户端的可以使用

@?/rdbms/admin/addmrpt.sql

对于plsql客户端,我用绝对路径去执行,@?的命令找不到文件

这个要根据自己的Oracle安装路径去修改,例如:

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

(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.

二、ADDM报告性能分析

ADDM性能报告是从数据库的整体配置和局部SQL方面给出建议,阅读时候按FINDING1,FINDING2,...,的顺序阅读就好

下面的图来自《收获,不止SQL优化》一书:

Oracle ADDM报告生成和性能分析的更多相关文章

  1. Oracle AWRDD报告生成和性能分析

    我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315 对于局部的,比如某个页面列表sql,我们可以使用Oracle的 ...

  2. Oracle AWRSQRPT报告生成和性能分析

    我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315 对于局部的,比如某个页面列表sql,我们可以使用Oracle的 ...

  3. Oracle ASH报告生成和性能分析

    我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315 对于局部的,比如某个页面列表sql,我们可以使用Oracle的 ...

  4. Oracle AWR报告生成和性能分析

    目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...

  5. ORACLE AWR报告生成步骤

    ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\ ...

  6. Oracle Update 语句语法与性能分析 - 多表关联

    Oracle Update 语句语法与性能分析 - 多表关联   为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create ...

  7. [转]oracle awr报告生成和分析

    转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...

  8. oracle addm报告

    可通过@?/rdbms/admin/addmrpt.sql生成ADDM报告 ADDM本身并不是很实用,抽象级别太高,用于初步判断系统配置/IO子系统是否合理和快速参考,一个报告截图如下: 任务 '任务 ...

  9. oracle sql语句跟踪及性能分析工具实现

    在网上找了一大圈,没找着合适的工具来跟踪oracle一段时间的sql. 我们的场景是打算自动化跑遍所有场景(rft)+fiddler跟踪请求+后端跟踪sql,根据结果去分析慢的请求和sql,本来awr ...

随机推荐

  1. openfire推送离线聊天信息的插件

    插件说明 在手机的聊天应用中,经常出现的一个需求就是把用户的离线消息通过推送系统推送到用户的手机上,为了实现这个功能,本人就开发了本插件,这个openfire 插件是拦截了发给openfire用户的离 ...

  2. 关于top命令的使用

    在服务器运维过程中,我们有时需要知道当前状态下的系统运行性能,该如何获取呢?今天,咱们聊一下关于top这个小命令的一些知识. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资 ...

  3. 深入理解springAOP切面的特性

    一张图说明情况

  4. bzoj 3759 Hungergame 博弈论+线性基

    和nim游戏类似 易证必败状态为:当前打开的箱子中石子异或和为0,没打开的箱子中不存在一个子集满足异或和为0 因为先手无论是取石子还是开箱子,后手都可以通过取石子来使状态变回原状态 所以只需判定是否有 ...

  5. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  6. Java中ArrayList学习笔记

    1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...

  7. 亲测可用,iptables实现NAT转发。

    环境 服务器A:192.168.1.7 服务器B: 192.168.1.160 需求 实现将本机(192.168.1.7:7410)端口流量转发给(192.168.1.160:9200). 1. 内核 ...

  8. RK3399配置笔记

    1. adb shell 默认超级管理员 在build/core/main.mk下将ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1改成ADDITIONAL_D ...

  9. 从壹开始前后端 [vue后台] 之一 || 权限后台系统 1.0 正式上线

    缘起 哈喽各位小伙伴周三好,春节已经过去好多天了,群里小伙伴也各种催搞了,新年也接了新项目,比较忙,不过还是终于赶上这个二月的尾巴写了这篇文章,也把 vue 权限后台上线了(项目地址:http://1 ...

  10. 《前端之路》之 JavaScript 高级技巧、高阶函数(一)

    目录 一.高级函数 1-1 安全的类型检测 1-2 作用域安全的构造函数 1-3 惰性载入函数 1-4 函数绑定 1-5 函数柯里化 1-6 反函数柯里化 一.高级函数 1-1 安全的类型检测 想到类 ...