分析AWR报告

1、AWR报告头信息

  • DB Name :数据库名字 DBid: 数据库id
  • Elapsed:采样时间段
  • DB Time:用户操作花费的时间,不包括Oracle后台进程消耗的时间
  • DB Time远小于Elapsed Time说明数据库比较空闲

2、AWR负载概要信息

  • Per Second 和Per Transaction:这两部分是数据库资源负载的一个明细列表,分割成每秒钟的资源负载和每个事务的资源负载情况
  • Redo size:每秒/每个事务 产生的redo量 (单位字节) 标志数据库的繁忙程度
  • logical reads:每秒/每个事务 产生的逻辑读的块数
  • block changes:每秒/每个事务 改变的数据块数
  • physical reads:每秒/每个事务 产生的物理读
  • physical writes:每秒/每个事务 产生的物理写的块数
  • user calls:每秒/每个事务 用户的调用次数
  • parses:每秒/每个事务 分析次数 小于300则表示正常
  • hard parses: 每秒/每个事务 硬分析次数 小于100则表示正常
  • sorts: 每秒/每个事务 排序次数
  • logons: 每秒/每个事务 登录数据库次数
  • executes: 每秒/每个事务 SQL的执行次数
  • rollbacks: 每秒/每个事物回滚次数
  • transactions: 每秒的事务数

3、AWR实例效率

  • Buffer Nowait%:表示在内存获得数据的未等待比例
  • Buffer Hit%:表示进程从内存中找到数据块的比率,内存数据块命中率。小于80%则要加大data buffer pool
  • Library Hit%:表示共享池中SQL解析的命中率。若低于90%,则需要调大share pool
  • Execute to Parse:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。
  • Parse CPU to Parse Elapsd:解析总时间中消耗总CPU的时间百分比
  • Redo NoWait:表示在LOG缓冲区获得BUFFER的未等待比例。
  • In-memory sort%:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA。
  • Soft Parse%:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。
  • Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。
  • Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。

4、共享池概要

  • Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。
  • SQL with executions>1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。
  • Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。

5、AWR TOP等待事件

 
显示了系统中最严重的5个等待,按所占等待时间的比例倒序列示。当我们调优时,总希望观察到最显著的效果,因此应当从这里入手确定我们下一步做什么。

通常,在没有问题的数据库中,CPU time总是列在第一个

6、AWR TOP SQL Tuning

1)SQL ordered by Elapsed Time:记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间)

  • Elapsed Time(S): SQL语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行次数的总和时间。单位时间为秒 
    Elapsed Time = CPU Time + Wait Time
  • CPU Time(s): 为SQL语句执行时CPU占用时间总时长,此时间会小于等于Elapsed Time时间。单位时间为秒。
  • Executions: SQL语句在监控范围内的执行次数总计。
  • Elap per Exec(s): 执行一次SQL的平均时间。单位时间为秒。
  • % Total DB Time: 为SQL的Elapsed Time时间占数据库总时间的百分比。
  • SQL ID: SQL语句的ID编号,点击之后就能导航到下边的SQL详细列表中,点击IE的返回可以回到当前SQL ID的地方。
  • SQL Module: 显示该SQL是用什么方式连接到数据库执行的,如果是用SQL*Plus或者PL/SQL链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql该位置为空。
  • SQL Text: 简单的sql提示,详细的需要点击SQL ID。

2)SQL ordered by CPU Time: 记录了执行占CPU时间总和时间最长的TOP SQL(请注意是监控范围内该SQL的执行占CPU时间总和,而不是单次SQL执行时间)。

3)SQL ordered by Gets: 记录了执行占总buffer gets(逻辑IO)的TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets).

4)SQL ordered by Reads: 记录了执行占总磁盘物理读(物理IO)的TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读)。

5)SQL ordered by Executions: 记录了按照SQL的执行次数排序的TOP SQL。该排序可以看出监控范围内的SQL执行次数。

6)SQL ordered by Parse Calls: 记录了SQL的软解析次数的TOP SQL。

7)SQL ordered by Sharable Memory: 记录了SQL占用library cache的大小的TOP SQL。 
Sharable Mem (b):占用library cache的大小。单位是byte。

8)SQL ordered by Version Count: 记录了SQL的打开子游标的TOP SQL。

主要针对ordered by Elapsed time,orderedby CPU time,orderedby gets,orderedby read排名前三SQL进行观察并调优.

Oracle对SQL处理的步骤:

  1. 语法检查(检查SQL的拼写语法是否正确)
  2. 语义检查(检查SQL中的访问对象是否存在及是否具备相应权限)
  3. 进行解析(parse)(利用内部算法对SQL解析,生成解析树(parse tree)及执行计划(execution plan))à软硬解析发生在此过程中
  4. 执行SQL,返回结果
时间: 2025-01-07 05:08:34

分析AWR报告的相关文章

【干货】ORACLE-AWR报告分析

1.什么是AWR? AWR (Automatic Workload Repository) 是自动负载信息库的英文缩写,AWR报告是Oracle 10g以后版本提供的一种性能收集和分析工具,能提供一个时间段内整个系统资源使用情况的报告,通过报告可以了解一个系统的整个运行情况,生成的报告包括多个部分. AWR每小时对v$active_session_history视图(内存中的ASH采集信息,理论为1小时)进行采样一次,并将信息保存到磁盘中,并且保留7天,7天后旧的记录才会被覆盖.这些采样信息被保

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

转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数据库awr分析数据库sql执行性能的分析报告.下面将初步讲解一下: 1.先登陆数据库,生成awr报告. linux:~ # su - oracle[email protected]:~> sqlplus '/as sysdba' SQL*Plus: Release 11.1.0.6.0 - Prod

AWR报告的生成和简单分析方法

生成AWR报告方法: 第一步:数据库压力测试卡开始时:生成第一个快照: Sql>exec dbms_workload_repository.create_snapshot(); 第二步:数据库压力测试结束时:生成第二个快照 Sql>exec dbms_workload_repository.create_snapshot(); 第三步:生成AWR报告 SQL> @/oracle/product/10.2.0.5/rdbms/admin/awrrpt.sql (1)       选择报告文

Oracle的AWR报告分析

* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告. 如何分析: * 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确 * 在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,

(转载)Oracle AWR报告指标全解析

Oracle AWR报告指标全解析 2014-10-16 14:48:04 分类: Oracle [性能调优]Oracle AWR报告指标全解析 2013/08/31 BY MACLEAN LIU 26条评论 [性能调优]Oracle AWR报告指标全解析 开Oracle调优鹰眼,深入理解AWR性能报告:http://www.askmaclean.com/archives/awr-hawk-eyes-training.html 开Oracle调优鹰眼,深入理解AWR性能报告 第二讲: http:

极简AWR报告收集指导

1.以oracle用户登录oracle数据库,执行如下命令登录数据库: sqlplus / as sysdba 2.运行如下命令: @?/rdbms/admin/awrrpt.sql 3.出现如下信息时,直接回车(默认HTML格式) Would you like an HTML report, or a plain text report? 4.出现如下信息时,直接回车 Enter value for num_days: 控制台上打印出一系列类似如下的信息: Snap Instance    

关于AWR报告中几个命中率指标的初步解释(转)

文章转自:http://blog.itpub.net/24558279/viewspace-762371/ 从Oracle 10g开始,Oracle给广大DBA提供了一个性能优化的利器,那便是Automatic Workload Repository性能报告. 在拿到一份AWR性能报告后,通过分析AWR报告来定位数据库性能问题时,在AWR报告的报告头中,我们会看到类似如下的一些命中率指标: 那么,这些关于Oracle内存的几个关键指标以及Instance效率的几个指标又该如何理解呢? 1 这几个

使用AWR报告来诊断数据库性能问题

对于数据库整体的性能问题,AWR的报告是一个非常有用的诊断工具. 一般来说,当检测到性能问题时,我们会收集覆盖了发生问题的时间段的AWR报告-但是最好只收集覆盖1个小时时间段的AWR报告-如果时间过长,那么AWR报告就不能很好的反映出问题所在. 还应该收集一份没有性能问题的时间段的AWR报告,作为一个参照物来对比有问题的时间段的AWR报告.这两个AWR报告的时间段应该是一致的,比如都是半个小时的,或者都是一个小时的. 关于如何收集AWR报告,请参照如下文档: Document 1363422.1

一份11gR2 rac awr报告的简单分析

昨晚网友发来一份awr报告,希望帮忙分析一下.由于其他信息都没有,仅仅只有一份awr,鉴于目前有大多的朋友还不太熟悉或者说不知道如何去进行awr的分析.我这里就拿这个awr来进行分析,当抛砖引玉了.首先申请,网上分析awr的文章不少,大家也都可以参考一下. 首先来看awr前面部分信息,了解下系统的版本,以及大概判断下系统负载如何. 从上面信息我们可以得出如下结论:—-数据库是一套11.2.0.2的RAC—-Solaris 64bit环境,48c—-每个cpu 的可用处理时间是3591.6 s,