ORACLE调优深入理解AWR报告
什么是AWR?
一堆历史性能数据,放在sysaux表空间上,AWR和sysaux都是10g出现的,是oracle调优的关键特性。
默认快照间隔1小时;10g保存7天;11g保存8天;
可以通过DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS修改
AWR核心是dbms_workload_repository包
@?/rdbms/admin/awrrpt 本实例
@?/rdbms/admin/awrrpti RAC中选择实例号(在主机中想拉另一台oracle的awr报告)
基础统计指标:
SQL和优化器指标
OS指标
等待事件类型
时间指标(oracle时间模型)
AWR小技巧
手动执行一个快照:
exec dbms_workload_repository.create_snapshot;
创建一个awr基线:
exec dbms_workload_repository.create_baseline(start_snap_id,end_snap_id,baseline_name);
@?/rdbms/admin/awrddrpt AWR比对报告
@?/rdbms/admin/awrgrpt RAC全局AWR
自动生成AWR HTML报告:
http://www.oracle-base.com/dba/10g/generate_multiple_awr_reports.sql
AWR报告分析可从以下几点入手:
(1).Oacle主机资源开销分析及负载情况
(2).oracle top信息分析 Top 10 Foreground Events by Total Wait Time
(3).sql开销情况 SQL ordered by Elapsed Time
(4).oracle负载情况 Load Profile
(5).oracle实例效率分析 Instance Efficiency Percentages (Target 100%)
(6).oracle共享池分析 Shared Pool Statistics
AWR报告指标分析:
Oacle主机资源开销分析及负载情况:
CPUs:32 逻辑cpu数
Elapsed快照监控时间:如果为了诊断特定时段性能问题则Elapsed不宜过长15分钟~2、3个小时。如果是看全天负载那么可以长一些,最常见是60分钟后者120分钟。
DB Time:不包括Oracle后台进程消耗的时间,如果DB Time远远小于Elapsed时间,说明数据库比较空闲。
DB Time= cpu time + wait time(不包含空闲等待) (非后台进程)
数据库耗时17分钟,共32个逻辑cpu:17/32=0.53,平均每个cpu耗时0.53分钟
cpu利用率:0.53/60=0.008 0.8%利用率很小,说明cpu空闲
如果超过100%说明出现等待现象
oracle负载情况:
Redo size:每秒产生的日志大小(单位字节),可标志数据变更频率, 数据库任务的繁重与否。
Logical reads:每秒/每事务逻辑读的块数.平决每秒产生的逻辑读的block数。Logical Reads= Consistent Gets + DB Block Gets;
Block changes:每秒/每事务修改的块数;
Physical reads:每秒/每事务物理读的块数;
Physical writes:每秒/每事务物理写的块数;
User calls:每秒/每事务用户call次数;
Sorts:每秒/每事务的排序次数;
Logons:每秒/每事务登录的次数;
Executes:每秒/每事务SQL执行次数;
Transactions:每秒事务数.每秒产生的事务数,反映数据库任务繁重与否。
Blocks changed per Read:表示逻辑读用于修改数据块的比例.在每一次逻辑读中更改的块的百分比。
Recursive Call:递归调用占所有操作的比率.递归调用的百分比,如果有很多PL/SQL,那么这个值就会比较高。
Rollback per transaction:每事务的回滚率.看回滚率是不是很高,因为回滚很耗资源 ,如果回滚率过高,可能说明你的数据库经历了太多的无效操作 ,过多的回滚可能还会带来Undo Block的竞争 该参数计算公式如下:
Round(User rollbacks / (user commits + user rollbacks) ,4)* 100% 。
Rows per Sort:每次排序的行数
Transactions:数据库层的TPS(单独看没什么意义,可用作优化前后的对比值)。
parses:解析次数;软解析加硬解析
Hard parses:硬解析 万恶之源,会造成多种等待,不要超过每秒20次
结合Time Model Statistics查看
Hard parses(硬解析数)和hard parse (sharing criteria) elapsed time对应,看一眼Time Model Statistics,
即可知该系统是否是解析敏感的
注:
Oracle的硬解析和软解析
提到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:
1、语法检查(syntax check)
检查此sql的拼写是否语法。
2、语义检查(semantic check)
诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。
3、对sql语句进行解析(prase)
利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。
4、执行sql,返回结果(execute and return)
其中,软、硬解析就发生在第三个过程里。
Oracle利用内部的hash算法来取得该sql的hash值,然后在library cache里查找是否存在该hash值;
假设存在,则将此sql与cache中的进行比较;
假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。
诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。
创建解析树、生成执行计划对于sql的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。
oracle top信息分析:
db file scattered read等待事件是当SESSION等待multi-block I/O时发生的,通过是由于full table scans或index fast full scans。发生过多读操作的Segments可以在“Segments by Physical Reads”和 “SQL ordered by Reads”节中识别(在其它版本的报告中,可能是别的名称)。如果在OLTP应用中,不应该有过多的全扫描操作,而应使用选择性好的索引操作。
DB file sequential read等待意味着发生顺序I/O读等待(通常是单块读取到连续的内存区域中),如果这个等待非常严重,应该使用上一段的方法确定执行读操作的热点SEGMENT,然后通过对大表进行分区以减少I/O量,或者优化执行计划(通过使用存储大纲或执行数据分析)以避免单块读操作引起的sequential read等待。通过在批量应用中,DB file sequential read是很影响性能的事件,总是应当设法避免。
Log File Parallel Write事件是在等待LGWR进程将REDO记录从LOG 缓冲区写到联机日志文件时发生的。虽然写操作可能是并发的,但LGWR需要等待最后的I/O写到磁盘上才能认为并行写的完成,因此等待时间依赖于OS完成所有请求的时间。如果这个等待比较严重,可以通过将LOG文件移到更快的磁盘上或者条带化磁盘(减少争用)而降低这个等待。
Buffer Busy Waits事件是在一个SESSION需要访问BUFFER CACHE中的一个数据库块而又不能访问时发生的。缓冲区“busy”的两个原因是:1)另一个SESSION正在将数据块读进BUFFER。2)另一个SESSION正在以排它模式占用着这块被请求的BUFFER。可以在“Segments by Buffer Busy Waits”一节中找出发生这种等待的SEGMENT,然后通过使用reverse-key indexes并对热表进行分区而减少这种等待事件。
Log File Sync事件,当用户SESSION执行事务操作(COMMIT或ROLLBACK等)后,会通知 LGWR进程将所需要的所有REDO信息从LOG BUFFER写到LOG文件,在用户SESSION等待LGWR返回安全写入磁盘的通知时发生此等待。减少此等待的方法写Log File Parallel Write事件的处理。
Enqueue Waits是串行访问本地资源的本锁,表明正在等待一个被其它SESSION(一个或多个)以排它模式锁住的资源。减少这种等待的方法依赖于生产等待的锁类型。导致Enqueue等待的主要锁类型有三种:TX(事务锁), TMD(ML锁)和ST(空间管理锁)。
sql开销情况:
SQL ordered by Elapsed Time部分可以最准确定位到某个导致的性能问题。重点关注3个参数的值:
(1).Elapsed Time(S)表示sql执行的总时间。
(2).Executions表示sql执行次数。
(3).Elap per Exec(s): 执行一次SQL的平均时间,单位时间为秒。
oracle实例效率分析:
主要关注一下两个参数:
(1).Buffer Nowait%:表示在内存获得数据的未等待比例
(2).Parse CPU to Parse Elapsd %:解析总时间中消耗总CPU的时间百分比,该值越低表示实例越空闲。
由于实例在50%左右实例处于正常状态。
Parse CPU to Parse Elapsd:说明在解析sql语句过程中,cpu占整个的解析时间比例。
解析实际运行时间/(解析实际运行时间+解析中等待资源时间),越高越好。计算公式为:Parse CPU to Parse Elapsd %= 100*(parse time cpu / parse time elapsed)。即:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)。如果该比率为100%,意味着CPU等待时间为0,没有任何等待。
Shared Pool Statistics:
Memory Usage%维持在90以上,所以共享池没有造成严重浪费。
转载于:https://www.cnblogs.com/tenchina/p/8609448.html
ORACLE调优深入理解AWR报告相关推荐
- Oracle调优总结--1(经典实践 重要)
Problem Description: 1.每个表的结构及主键索引情况 2.每个表的count(*)记录是多少 3.对于创建索引的列,索引的类型是什么?count(distinct indexcol ...
- oracle调优总结 本文转自:http://blog.csdn.net/wonth/article/details/1670366
/*========================================================================== *Author: MartriWang@gm ...
- Oracle调优总结
/*========================================================================== *Author: MartriWang@gm ...
- oracle调优 oracle培训
oracle调优总结如下: 一.谁来调优 数据库管理员 应用架构师 应用设计师 应用开发人员 OS系统管理员 存储系统管理员 二.DBA在调优中做什么 1)应用调优(DBA和开发人员合作) SQL s ...
- Oracle调优综述
在过去的十年中, Oracle 已经成为世界上最专业的数据库之一.对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力.最有效的方法之一是通过 Oracle 调优.它有 ...
- 性能调优:理解Set Statistics Time输出
性能调优:理解Set Statistics Time输出 原文:性能调优:理解Set Statistics Time输出 在性能调优:理解Set Statistics IO输出我们讨论了Set Sta ...
- oracle调优概述
昨天听了博森瑞老师 老邱的公开课,oracle主机调优,收益匪浅. oracle调优不单单是oracle自己的问题,和其它方面都息息相关,包括以下5个方面: 1) 主机调优 2) 网络调优 3) 数据 ...
- JVM原理和调优的理解和学习
JVM原理和调优的理解和学习 一.详解JVM内存模型 二.JVM中一次完整的GC流程是怎样的 三.GC垃圾回收的算法有哪些 四.简单说说你了解的类加载器 五.双亲委派机制是什么,有什么好处,怎么打破 ...
- oracle工具过期,Oracle调优工具变迁及7种诊断武器
1. Oracle v5 Debug code 2. Oracle v6 Counters/Ratios BSTAT/ESTAT SQL*Trace 3. Oracle v7 Wait Even ...
最新文章
- NBIOT-NPSS/NSS/NPBCH的资源位置
- 关于Windows 2003下开启防火墙后不能通过FTP问题解决
- linux文件夹多个空格,linux-在“ for”循环中读取带有空格,带有多个输入文件的制表符的完整行...
- php如何存到磁盘,php缓存----磁盘缓存
- Php基础数学运算篇
- 在 SAP 电商云 Spartacus UI 里使用自定义配置控制 UI 调试的开关
- 广东高校计算机专业,广东高校计算机专业就业率最低 专业设置忌盲目
- pbdom 不能解析gbk_备受家长追捧的公立学校,摇中率不到3%,还要抢着报名?速看大摇号学校全面解析!...
- spring-test测试demo
- Java—读取指定路径下文件的内容
- ev3编码软件linux,乐高ev3编程软件下载
- 性能优化:空间换时间
- 干货 | 携程风控数据仓库实践
- 一文读懂java中的Reference和引用类型
- 计算机通信机房消防要求,信息机房对环境有什么要求
- Javaweb学习笔记——Javaweb概述
- 【网络篇】第十七篇——IP协议详解
- 计算机应用最普遍的汉字字符编码是什么,计算机中目前最普遍使用的汉字字符编码是什么...
- 苹果终于要认真发力智能家居了!挖来前微软副总裁掌舵其人工智能部门!
- OSChina 周五乱弹 ——程序员看不懂的外交黑话