分析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处理的步骤:
- 语法检查(检查SQL的拼写语法是否正确)
- 语义检查(检查SQL中的访问对象是否存在及是否具备相应权限)
- 进行解析(parse)(利用内部算法对SQL解析,生成解析树(parse tree)及执行计划(execution plan))à软硬解析发生在此过程中
- 执行SQL,返回结果
分析AWR报告的更多相关文章
- Oracle的AWR报告分析
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告 ...
- [转]oracle awr报告生成和分析
转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...
- 理论实践:循序渐进理解AWR细致入微分析性能报告
1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件.在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息. AWR 报告是 ...
- AWR报告分析
AWR报告分析 awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体 ...
- 关于AWR报告命中率指标的解释(转)
文章转自:http://blog.itpub.net/24558279/viewspace-762371/ 从Oracle 10g开始,Oracle给广大DBA提供了一个性能优化的利器,那便是Auto ...
- 极简AWR报告收集指导
1.以oracle用户登录oracle数据库,执行如下命令登录数据库: sqlplus / as sysdba 2.运行如下命令: @?/rdbms/admin/awrrpt.sql 3.出现如下信息 ...
- Oracle AWR报告生成和性能分析
目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...
- 一份11gR2 rac awr报告的简单分析
昨晚网友发来一份awr报告,希望帮忙分析一下.由于其他信息都没有,仅仅只有一份awr,鉴于目前有大多的朋友还不太熟悉或者说不知道如何去进行awr的分析.我这里就拿这个awr来进行分析,当抛砖引玉了.首 ...
- 借助AWR报告分析解决oracleCPU过高的问题(转)
原文地址:http://www.cnblogs.com/crystal-guoguo/p/4213458.html 简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise ...
随机推荐
- Java基础12一IO流
1.IO流的原理 利用数据通道实现程序和数据源之间数据的的读写操作. 2.IO流分类 输入流.输出流.字节流.字符流.节点流.过滤流 3.InputStream 字节输入流 实现类FileInpu ...
- React Component(dva)
Stateless Functional Components(3种方式) class App extends React.Component function App() const App= Re ...
- scala类型系统:24) 理解 higher-kinded-type
首先我们从最基本的泛型来看: 现在我们对上面泛型中的类型参数再进一步,也是个泛型会如何呢? 可以看到,java中不支持类型参数也是泛型类型的情况,而scala支持.这是一个很重要的区别,scala在类 ...
- C# MVC 延时
[System.Runtime.InteropServices.DllImport("kernel32.dll")] static extern uint GetTickCount ...
- count(*)实现原理+两阶段提交总结
count(*)实现原理 不同引擎的实现: MyISAM引擎把表的总行数存在了磁盘上,执行COUNT(*)就会直接返回,效率很高: InnoDB在count(*)时,需要把数据一行一行的从引擎里面取出 ...
- Postgresql_最新版11.2源码编译安装
pg官网:https://www.postgresql.org/ yum -y gcc gcc-c++ cmake ncurses-devel perl zlib* .去官网下载源码包. 下载地址:h ...
- Qt中采用多线程实现Socket编程
Socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 本文介绍的是Qt中采用多线程Socket编程,由于工作的需要,开始 ...
- Python 文件操作 day2
一.打开文件的模式1:读.写.追加 1.r读:读模式,只能读,不能写,打开不存在的文件会报错:可省略'r',因为不写默认是读模式 f = open('filename',encoding='utf-8 ...
- 360 基于 Prometheus的在线服务监控实践
转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Promethe ...
- JS常见的四种设计模式
1 工厂模式 简单的工厂模式可以理解为解决多个相似的问题; function CreatePerson(name,age,sex) { var obj = new Object(); obj.name ...