在做单交易负载测试时,有的交易响应时间超出了指标值,在排除完测试环境等可能造成交易超时的原因后,去分析数据库问题。数据库用的是Oracle,对于Oracle数据库整体的性能问题, awr的报告是一个非常有用的诊断工具,于是采用Oracle自带的性能分析工具awr进行监控分析。

生成awr报告

1、   以sysdba登录数据库:sqlplus / as sysdba,如下图所示:

2、   在负载测试执行前后分别取一个快照:exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT,如下图所示:

3、   压力测试执行完后,执行awrrpt命令(@?/rdbms/admin/awrrpt)获取awr报告,并且输入报告类型为HTML(awr报告类型有html和txt两种),如下图所示:

4、   列出awr报告生成的时间段(1表示1天内的),如下图所示:

5、   输入开始和结束的snap id。如果不指定什么时候生成快照,则默认每隔1个小时生成一次。前面输入的时间段为1天,则会从当天0点开始,每隔1个小时生成一个快照,如下图示:

6、   接下来提示输入awr报告的名称,输入完名称之后,点击“file-Log Session”将报告保存到本地,再回车,就会生成相应的报告,如下图所示:

7、   awr报告生成完成后,双击打开即可查看awr报告记录的详细信息。

一、  awr定位问题

1、   Load Profile:了解系统整体负载情况,如每秒钟事务数,每秒物理读写次数,每秒逻辑读写次数,SQL语句的解析,特别是硬解析数等。

2、   Instance Efficiency Percentages (Target 100%):除了Execute to Parse %(70%以上)和Parse CPU to Parse Elapsd,其他的各指标都应该接近100%。如果不符合则基本上可以确定系统存在性能问题,但即使符合也不能说明系统完全正常。

3、   Top 10 Foreground Events by Total Wait Time:这里列出了消耗时间最多的10个等待事件,每种事件都表示一种原因。

1)       Log file sync过高问题。如果log file sync等待时间很长,超过5ms,一般它的等待时间在5ms以下。分析发现是commit请求过多,导致请求堆积在log buffer所致,修改脚本将commit请求降低,问题得到解决。总结Log file sync过高原因:

a)      硬件磁盘老化

b)      commit请求过多

c)      log buffer设置过小

2)      direct path read。direct path read就是不经过Cache,直接到磁盘上去读。而且这种全表扫描还会导致的现象就是tps的抖动、响应超时。总结导致超时原因:

a)      全表扫描

b)      SQL语句中有排序(order by等)

接下来在main report中点击SQL statistics,之后会显示SQL ordered by Elapsed Time,这是SQL语句的执行时间列表,如下图所示:

从上图可以看出,第一条sql语句的执行时间很长,所以值得怀疑,点开它的sql id,就会显示对应的sql语句,然后在plsql上执行这条sql语句,查看这条语句的执行计划,从而判断是否为全表扫描。

通过查看该sql的执行计划,发现为全表扫描(TABLE ACCESSS FULL),全表扫描是数据库服务器用来搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止。

为该sql语句的cst_accno字段添加索引,如下图示:

重新跑负载测试,这时该交易响应时间达标。

使用AWR报告诊断Oracle性能问题的更多相关文章

  1. 例举在诊断Oracle性能问题时,常用的工具、方法

    例举在诊断Oracle性能问题时,常用的工具.方法 解答: 1)简单一点的可以用toad及dbartisan这样的工具. 2)纯做性能监测,比较出色的有spolight和emc的I3,这两个软件都比较 ...

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

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

  3. ORACLE AWR报告生成步骤

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

  4. Oracle的AWR报告分析

    * 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告 ...

  5. (原创)如何在性能测试中自动生成并获取Oracle AWR报告

    版权声明:本文为原创文章,转载请先联系并标明出处 由于日常使用最多的数据库为Oracle,因此,最近又打起了Oracle的AWR报告的主意. 过去我们执行测试,都是执行开始和结束分别手动建立一个快照, ...

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

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

  7. 快速熟悉 Oracle AWR 报告解读

    目录 AWR报告简介 AWR报告结构 基本信息 Report Summary Main Report RAC statistics Wait Event Statistics 参考资料 本文面向没有太 ...

  8. AWR报告分析

    AWR报告分析 awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体 ...

  9. ORACLE AWR性能报告和ASH性能报告的解读

    数据库的性能分析可分为会话级和系统级:如果确定某个会话存在性能问题,最常见的分析方式是对这个会话做一个SQL_TRACE或者10046事件,通过分析trace文件来定位问题所在.如果无法确定哪个会话性 ...

随机推荐

  1. for...in和for...of循环的区别

    使用for...in和for...of分别对Array,Set,Map做测试 var a=["A","B","C"]; var b=new ...

  2. linux下编译C/C++ 程序

    C/C++的速度是Python和perl所无法比拟的,尤其对于处理超大的生物信息学文件来说. 最近在写一个最简单的fastq cut工具,Python简直慢到不能忍,8G的fastq.gz文件的cut ...

  3. 新项目的vue组件

    项目地址:http://pan.baidu.com/s/1qYIxCXu 很久没有写博客的原因的是之前一直在解决一个问题,这个问题就是:我们在写组件的时候,官方推荐把css写在组件里面,但是如果我们写 ...

  4. Confluence 6 教程:空间高手

    这个教程将会带你如何在 Confluence 中创建和自定义空间,同时也包括如何删除空间,如果需要的话.通过这个教程,你将成为使用空间的高手. 你需要具有创建空间(Create space)和创建个人 ...

  5. CF1010F Tree

    真·毒瘤题 这个题面写错了一句话.要求的是每个节点的石子树>=它的两个儿子石子数的和. 首先考虑怎么算石子分配的方案. 如果对这棵树每个节点的石子数都和儿子差分一下的话,可以唯一对应一颗每个点都 ...

  6. linux系统下pdf操作软件pdftk

    二十一.pdf操作软件pdftk pdftk是一个命令行程序,使用计算机终端进行操作. 1.第一步:安装pdftk windows:https://www.pdflabs.com/tools/pdft ...

  7. python2.7 目录下没有scripts

    1.python2.7 配置环境完成或,python目录下没有scripts目录,先下载setuptools,cmd下载该目录下,输入python setup.py install 2.完成后,pyt ...

  8. 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装

    部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...

  9. 2018-2019 ACM-ICPC Brazil Subregional Programming Contest

    A:留坑 B:二维sg函数,特判边界情况 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) / ...

  10. leetcode-algorithms-25 Reverse Nodes in k-Group

    leetcode-algorithms-25 Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked l ...