oracle awr监控报告,一个Oracle小白的AWR报告分析(一)

article/2025/9/1 20:04:37

背景:某个类似准实时的数据分析系统,每15分钟从其他6个数据库中抽取五百张增量数据表,并进行15分钟粒度统计,同时有个前端门户进行查询。

该数据分析系统由数据抽取服务器、应用服务器、数据库服务器组成,全部为虚拟机环境。

问题:当数据抽取定期执行时,应用门户每个页面访问都极其缓慢,10分钟无法响应,甚至无法打开。

初步诊断:厂家一直认为是磁盘问题,甚至准备采用读写分离方式优化。

具体诊断:以数据来说话,以AWR报告为依据,评估和定位问题核心所在。

很久没研究Oracle了,最后正式使用Oracle还是2011年,也想趁此机会,把Oracle复习一下。

AWR是 Oracle 10g 版本推出的新特性,全称叫Automatic Workload Repository-自动负载信息库。

AWR 是通过对比两次快 照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分。

AWR报告主要包括如下部分:

Report Summary - 报告摘要

Wait Events Statistics - 等待事件统计

SQL Statistics - SQL统计

Instance Activity Statistics - 实例活动统计

IO Stats - IO统计

Buffer Pool Statistics - 缓冲池统计

Advisory Statistics - 建议统计

Wait Statistics - 等待统计

Undo Statistics - 重做统计

Latch Statistics - 栓锁统计

Segment Statistics - 段统计

Dictionary Cache Statistics - 字典缓存统计

Library Cache Statistics - 库缓存统计信息

Memory Statistics - 内存统计

Streams Statistics - 流统计

Resource Limit Statistics - 资源配额统计

Shared Server Statistics - 共享服务统计

init.ora Parameters - init.ora参数

AWR报告的开始是Workload repository report for (负载信息库报告)

主要包括了

一、DB 名称,DB ID,实例名,实例个数,最近数据库启动时间,数据版本,是否RAC

二、主机名称、操作系统、CPU核数、内存大小

三、AWR报告执行的起止时间,会话数,每个会话的游标数

Elapsed为两次快照的时间间隔

DB Time为花在数据库运算(非后台进程)和等待(非空闲等待)上的时间

DB time = cpu time + all of nonidle wait event time。

数据库负载率=DB time/Cores/Elapsed=1955.68/24/119.70=68.08%,说明数据库还是比较忙的。

d955f8fd05ce330e0517ba585d6ddbed.png

关于报告摘要部分,第一节是负载概况

这两部分是数据库资源负载的一个明细列表,分割成每秒钟的资源负载和每个事务的资源负载情况,性能指标的含义如下:

redo size: 每秒/每个事务 产生的redo量 (单位字节)

logical reads: 每秒/每个事务 产生的逻辑读的块数

block changes: 每秒/每个事务 改变的数据块数

physical reads: 每秒/每个事务 产生的物理读

physical writes: 每秒/每个事务 产生的物理写的块数

user calls: 每秒/每个事务 用户的调用次数

parses: 每秒/每个事务 分析次数

hard parses: 每秒/每个事务 硬分析次数

sorts: 每秒/每个事务 排序次数

logons: 每秒/每个事务 登录数据库次数

executes: 每秒/每个事务 SQL的执行次数

rollbacks: 每秒/每个事物回滚次数

transactions: 每秒的事务数

effe89ad2684fd9f7c63e7de443d34db.png

大体可以看出,物理读每秒763M左右,逻辑读每秒2.7G,执行语句12次/秒,业务繁忙程度一般,主要是读数据为主。也就是说磁盘读写不是造成性能问题的根本原因。

4fdee6cae72c0d209d4539daa6489bb0.png

Instance Efficiency Percentages为实例命中率

Buffer Nowait %表示在内存获得数据的未等待比例。在缓冲区中获取Buffer的未等待比率。Buffer Nowait的这个值一般需要大于99%。否则可能存在争用,可以在后面的等待事件中进一步确认。

Buffer Hit %表示进程从内存中找到数据快的比率,监视这个值是否发生重大变化比这个值本身更重要。根据Oracle的经验,对于OLTP系统,Buffer Hit Ratio理想应该在95%以上。小于90%要增加db_cache_size。命中率很高,不一定代表系统性能最优,比如大量非选择性的索引被频繁访问, 会导致命中率很高的假象(db_file_sequential_read)。命中率突然增大可以检查top buffer get SQL,查看大量逻辑读的语句和索引;命中率突然减小,可以检查top physical_reads SQL,查看大量物理读的语句,主要是那些没有使用索引或索引被删。--编者按,数据库中确实存在大量非选择性的索引,几乎每个表都有。

library hit%表示Oracle从Library Cache中检索到一个解析过的SQL或PL/SQL语句的比率,当应用程序调用SQL或存储过程时,Oracle检查Library Cache确定是否存在解析过的版本,如果存在,Oracle立即执行语句;如果不存在,Oracle解析此语句,并在Library Cache中为它分配共享SQL区。低的library hit ratio会导致过多的解析,增加CPU消耗,降低性能。如果library hit ratio低于90%,可能需要调大shared pool区。STATEMENT在共享区的命中率,通常应该保持在95%以上,否则需要要考虑:加大共享池;使用绑定变量;修改cursor_sharing等参数。 --编者按,简而言之就是SQL软解析命中率;数据库中也存在不少的写死的SQL语句或拼接的SQL语句。

Execute to Parse%:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。计算公式为:Execute to Parse =100 * (1 - Parses/Executions)。所以如果系统Parses > Executions,就可能出现该比率小于0的情况。该值<0通常说明shared pool设置或者语句效率存在问题,造成反复解析,reparse可能较严重,或者是可能同snapshot有关,通常说明数据库性能存在问题。--编者按,本例中这个值比较低3%,说明SQL重用率很低。

Parse CPU to Parse Elapsd%:SQL总体解析时间包括CPU时间和wait时间,是指sql语句的CPU时间与总体解析时间的比率,解析实际运行时间/(解析实际运行时间+解析中等待资源时间),越高越好。计算公式为:Parse CPU to Parse Elapsd %= 100*(parse time cpu parse time elapsed)。即:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)。如果该比率为100%,意味着CPU等待时间为0,没有任何等待;这个比率过低说明SQL Parse的wait时间远远大于CPU的 Parse时间不是很正常,可能有大量lib cache latch or shared pool latch。--编者按,本例中这个值比较低0.44%,说明CPU等待情况极为严重,lib cache latch一般是由于SQL未使用绑定变量导致无法共享产生的硬解析,shared pool latch一般是共享池不够大导致的。

通过v$SQL视图查询未绑定变量的SQL语句

select*

from(select plan_hash_value,count(distinct(hash_value)),sum(executions),sum(parse_calls)

from v$sql

group by plan_hash_value

having count(distinct(hash_value))>10

order by2desc)

where rownum<21;

select sql_text from v$sql where plan_hash_value=?and rownum<10;

Redo NoWait %表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFER。当redo buffer达到1M时,就需要写到redo log文件,所以一般当redo buffer设置超过1M,不太可能存在等待buffer空间分配的情况。当前,一般设置为2M的redo buffer,对于内存总量来说,应该不是一个太大的值。

In-memory Sort%:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA(10g)。如果低于95%,可以通过适当调大初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE来解决,注意这两个参数设置作用的范围时不同的,SORT_AREA_SIZE是针对每个session设置的,PGA_AGGREGATE_TARGET则时针对所有的sesion的。

Soft Parse%:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。sql在共享区的命中率,小于<95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用。

Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。要确保Latch Hit>99%,否则意味着Shared Pool latch争用,可能由于未共享的SQL,或者Library Cache太小,可使用绑定变更或调大Shared Pool解决。要确保>99%,否则存在严重的性能问题。当该值出现问题的时候,我们可以借助后面的等待时间和latch分析来查找解决问题。

Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。计算公式为:% Non-Parse CPU

=round(100*1-PARSE_CPU/TOT_CPU),2)。如果这个值比较小,表示解析消耗的CPU时间过多。与PARSE_CPU相比,如果TOT_CPU很高,这个比值将接近100%,这是很好的,说明计算机执行的大部分工作是执行查询的工作,而不是分析查询的工作。

8098089a5a15e7198892245f55ed3315.png


http://chatgpt.dhexx.cn/article/t5xeOi3u.shtml

相关文章

oracle生成awr报告命令,Oracle AWR报告生成方法

1、登录Oracle程序所在的服务器&#xff0c;查找出awrrpt.sql文件所在位置 D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\awrrpt.sql 2、登录Oracle&#xff0c;以sysdba身份连接 3、执行命令 D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\awrrpt.sql 4、输入report_type报告类型…

oracle打印awr报告,oracle导出AWR报告步骤

1、进入数据库 sqlplus / as sysdba ps:如果出现用户密码错误&#xff0c; 计算机管理 > 组 > ora_dba组里的用户登陆操作系统&#xff0c;就可以无需输入用户和口令&#xff0c;直接以sysdba的身份连上数据库。 2、查看用户 show parameter db_name 3、开始压测后执行 e…

Oracle导出AWR报告

一、使用root用户登录Linux服务器 二、切换至oracle用户 执行命令&#xff1a;su – oracle&#xff0c;然后回车 三、使用管理员权限连接数据库 执行命令&#xff1a;sqlplus / as sysdba&#xff0c;然后回车 四、生成报告快照 执行脚本&#xff1a;exec DBMS_WORKLOAD_RE…

如何分析AWR 报告

Automatic Workload Repository是10g引入的一个重要组件。在里面存贮着近期一段时间内&#xff0c;默认是7天&#xff0c;数据库活动状态的详细信息。 AWR报告是对AWR视图进行查询而得到的一份自动生成的报告。可以通过下面的脚本手工得到一份AWR报告。 exec dbms_w…

oracle 取awr报告,Oracle生成awr报告

Oracle生成awr报告 达芬奇的梦 2018-04-22 21:28:32 Oracle 一、手工生成awr报告的方法 1、相应权限用户登录(sysdba)后,在$ORACLE_HOME/rdbms/admin 2、在sqlplus里执行@?/rdbms/admin/awrrpt.sql,按照提示操作。 3、生成AWR报告说明 单实例:@$ORACLE_HOME/rdbms/admin/aw…

Oracle SQL调优系列之AWR报告简介

文章目录 一、AWE报告生成步骤1.1 工具选择1.2 自动创建快照1.3 手工创建快照1.4 生成AWR报告 二、AWR报告分析2.1 AWR之DB Time2.2 AWR之load_profile2.3 AWR之efficiency percentages2.4 AWR之top 10 events2.5 AWR之SQL Statistics 一、AWE报告生成步骤 对于SQL调优&#x…

AWR报告解读

0 初步结论 ① 数据库CPU资源不够&#xff0c;CPU使用率较高&#xff0c;造成CPU等待时间较长&#xff0c;可适当提升CPU资源&#xff1b; ② 数据库I/O资源消耗不太大&#xff0c;不存在IO瓶颈&#xff1b; ③ 可适当调大SGA空间&#xff08;增加10G左右&#xff09;&#xf…

用sql统计vintage,滚动率,迁移率,逾期率

获取代码请移步&#xff1a;用sql统计vintage&#xff0c;滚动率&#xff0c;迁移率&#xff0c;逾期率

如何用R语言做Vintage分析

一、背景 Vintage一词源自葡萄酒业&#xff0c;意思是葡萄酒酿造年份。因为每年的天气、温度、湿度、病虫害等情况不同&#xff0c;而这些因素都会对葡萄酒的品质产生很大的影响&#xff0c;所以人们对葡萄酒以葡萄当年的采摘年份进行标识来加以品质区分。现在Vintage分析被广泛…

风控中必做的数据分析

大数据领域就没有不做数据分析的&#xff0c;大数据风控也不例外。 我的观点是风控和其他互联网业务都是互通的&#xff0c;本文介绍下风控中必做的数据分析&#xff0c;用以说明数据分析是一通百通的。 工欲善其事&#xff0c;必先利其器。先说下数据分析的工具。 分析工具…

Vintage、滚动率、迁移率的应用

更多风控建模、大数据分析等内容请关注公众号《bigdatafengkong》 BY 小石头 一、Vintage Vintage源于葡萄酒酿造&#xff0c;葡萄酒的品质会因葡萄生长的年份不同、气候不同而不同。Vintage分析是指评估不同年份的葡萄酒的品质随着窖藏时间的推移而发生的变化&#xff0c;并且…

窗口函数:vintage报表

0 前言 Vintage这个词原意是指酿造葡萄酒的酒窖。葡萄酒是讲究年份&#xff0c;哪年光景好&#xff0c;哪年光景不好&#xff0c;直接会影响到葡萄酒的品质。后来借用到信贷资产行业&#xff0c;指的是每个月贷款的资产质量情况&#xff0c;要直接跟每个相同时间段内的余额做比…

信贷风控中Vintage、滚动率、迁移率的理解

风控业务背景 信贷风险管理是一门艺术&#xff0c;更是一门科学。资产质量分析中常会涉及到三个理论&#xff1a; 账龄分析&#xff08;Vintage Analysis&#xff09;&#xff1a;用以分析账户成熟期、变化规律等。滚动率分析&#xff08;Roll Rate Analysis&#xff09;&#…

风控ML[9] | Vintage和Roll Rate 分析的详解

我们说了好几期的风控建模了&#xff0c;也有不少的同学私信我说一般来说我们需要怎么确定Y值呢&#xff1f;&#xff0c;到底多坏的逾期表现的客户可以被我们定义为坏客户呢&#xff1f;今天这篇文章&#xff0c;就给大家介绍一个大家既熟悉又陌生的分析工具——Vintage Analy…

了解过Vintage的N种样式?

vintage的几种形式有没有兴趣了解下&#xff1f; 我们之前写的文章里就提到过一个资产分析报表里的vintage表&#xff0c;这个表是反映客群的账龄情况&#xff0c;如果不是很清楚请再戳进去&#xff1a;风控建模系列&#xff08;六&#xff09;&#xff1a;催收评分卡卡跟贷前…

风控模型策略-知识全整理(一)

做了大概5年风控&#xff0c;中间做过甲方&#xff0c;做过乙方&#xff0c;做过模型&#xff0c;做过策略&#xff0c;做过数据分析&#xff0c;但是始终觉着不得风控精华&#xff0c;做的事情太多&#xff0c;有的东西也就很难深入&#xff0c;目前就是将这么几年的积累写下来…

vintage、滚动率等相关指标介绍

目录 1、vintage 方法简介 优势 五级分类的比较 2、滚动率 3、入催率 4、FPD 随着互联网金融的发展&#xff0c;对数据分析的需求越来越大。数据分析的目的其实是为了找到风险和收益的平衡点。高收益伴随着高风险&#xff0c;而低风险的回报又如同鸡肋。所以&#xff0c;…

对Vintage未表现数据的预测方法总结

这段时间在利用Vintage分析做借贷产品的放款损失率相关工作&#xff0c;来简单总结一下。 Vintage分析 前面说到&#xff0c;Vintage是资产质量分析的重要工具&#xff0c;主要是用来分析同一产品在不同时间放款的资产质量变化情况&#xff0c;从而反映该产品的客群质量和变化…

vintage+android相机,Vintage复古相机

Vintage复古相机是一款功能强大&#xff0c;非常好用的相机软件&#xff0c;这里有着丰富的复古滤镜可以自由选择&#xff0c;并且还可以直接在这里p图修图&#xff0c;各种效果可以提前预览&#xff0c;还可以一键生成保存&#xff0c;非常便捷&#xff01;喜欢拍照的小伙伴不…

一文教你如何解读Vintage

当我们在观测资产最终损失和不同资产的风险差异时&#xff0c;经常会用到一个指标&#xff0c;那就是Vintage。 这个指标的计算和展示与大多数指标有所不同&#xff0c;因为所需要的数据信息并不单来源于某一个固定时间的切片数据&#xff0c;而是来源于历史多个时间节点的切片…