前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AWR你好(3)—— ADDM的简单使用

AWR你好(3)—— ADDM的简单使用

作者头像
py3study
发布2020-01-07 10:41:12
4470
发布2020-01-07 10:41:12
举报
文章被收录于专栏:python3python3

AWR你好(1)文中提到过,AWR、ASH和ADDM三者之间有些猫腻,那在对ASH简单做了介绍以后,那这次我们就来看ADDM.

ADDM(Automatic Database Diagnostic Monitor)数据库自动诊断监控(o小白自己翻译的啊……有点不太顺),在AWR生成了快照以后,oracle会自动调用ADDM,对最近的两个快照之间的状态进行分析,总结可能导致数据库性能问题的原因并生成报表。ADDM的主要依据就是database time,那什么是database time呢,也就是一个数据库请求到响应的时间。

那o小白自己的理解来说,就是ADDM自动把可能导致数据库响应时间最慢的事件给找了出来,从症状开始,比如哪句sql语句导致的响应时间变慢,然后分析根本原因,比如是因为db file scattered read,那下面o小白会给大家看个例子,是o小白自己做的ADDM的实验。

实验背景是o小白创建了一张表,addmtest,用于测试ADDM.

首先,有心的朋友会发现,昨天的那张脚本的图里有一个脚本叫ADDMRPT,那这个脚本就是生成ADDM表报的工具,那前面介绍过了ADDM是根据快照来进行自动分析的,那和前面的AWR脚本一样,指定起始快照和结束快照以后就可以生成ADDM报表了,唯一不同的是ADDM只支持txt模式,不支持HTML格式。实验步骤几乎完全一致,也就不贴出来了,不过这里一点需要注意的,o小白在做实验的时候碰到了最后结果是这样的情况。

图示的结果说NOT ENOUGH DATABASE TIME,而且从上面的Average Database Load和Database Time这两个都是0,也就是说,这两个快照之内数据库几乎没有任何负载,那ADDM自然也就没东西好分析了,o小白实验环境,自然是没有负载的,如果是生产库,那大概是至少30分钟收集一次吧,当然也要根据业务的情况进行调整。

那o小白就模拟一下负载,编写了一段脚本,循环往addmtest里面进行自插入(原来的内容是dba_tables),循环个20次。然后再次运行脚本,生成了报表结果如下。(太长了截一段)

那可以看到,ADDM诊断是SQL Tuning,发现了sql语句,然后找到对应的wait event,后面几个finding也是一样的内容, 因为o小白是循环插入的嘛~

那可以看到ADDM还是很好用的,特别对于新手来说,可以让oracle自动发现问题所在,但是所谓的工具也仅仅是工具而已,不可能那么智能,有的时候ADDM的分析诊断也并不准确,可能按照他所说的做反而会导致其他的问题,那只能提供一个参考,更多还是要看DBA的经验,而这种经验自然是要日积月累的,厚积薄发~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档