Oracle数据库awr报告使用与分析
一 AWR报告生成
1、生成AWR(Automatic Workload Repository)报告:
sqlplus / as sysdba
SQL>@?/rdbms/admin/awrrpt.sql
2、修改采集时间和统计信息保留时间:
SQL>exec dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>7*24*60);
SQL>select * from dba_hist_wr_control;
3、手动执行一个快照:
SQL>exec dbms_workload_repository.create_snapshot;
4、创建一个AWR基线:
SQL>exec dbms_workload_repository.create_baseline(start_snap_id,end_snap_id,baseline_name);
二 AWR主要指标说明
指标 |
指标说明 |
redo size |
单位bytes,redosize可以用来估量update/insert/delete的频率, 大的redosize往往对lgwr写日志和arch归档造成I/O压力。 |
Logical Read |
单位 次数*块数, 逻辑读耗CPU,主频和CPU核数都很重要, 逻辑读高则DBCPU往往高,也往往可以看到latch: cache buffer chains等待。 |
Block changes |
单位次数*块数 , 描绘数据变化频率 |
Physical Read |
单位次数*块数, 物理读消耗IO,体现在IOPS和吞吐量等不同维度上;但减少物理读可能意味着消耗更多CPU。 physical read包含了physical reads cache和physical reads direct |
Physical writes |
单位次数*块数,主要是DBWR写datafile,也有direct path write。 dbwr长期写出慢会导致定期log file switch(checkpoint no complete) 检查点无法完成的前台等待。 physical write 包含了physical writes direct +physical writes from cache |
User Calls |
单位次数,用户调用数 |
Parses |
解析次数,包括软解析+硬解析; 软解析每秒超过300次意味着”应用程序”效率不高,调整session_cursor_cache。 |
Hard Parses |
万恶之源,Cursor pin s on X, library cache: mutex X , latch: row cache objects /shared pool… 硬解析最好少于每秒20次,每秒超过100次,说明绑定使用的不好,也可能共享池设置不合理。 |
W/A MB processed |
单位MB W/A workarea workarea中处理的数据数量结合 In-memory Sort%, sorts (disk) PGA Aggr一起看 |
Transactions |
每秒事务数,是数据库层的TPS,可以看做压力测试或比对性能时的一个指标,孤立看无意义。 |
% Blocks changed per Read |
每次逻辑读导致数据块变化的比率;如果’redo size’, ‘block changes’ ‘pct of blocks changed per read’,三个指标都很高,说明系统正执行大量insert/update/delete; |
Rollback per transaction % |
事务回滚比率。 Rollback per transaction %= (rollback)/(transactions) |
Rows per Sort |
平均每次排序涉及到的行数 ; Rows per Sort= ( sorts(rows) ) / ( sorts(disk) + sorts(memory)) |
Buffer Nowait % |
session申请一个buffer(兼容模式)不等待的次数比例,需要访问buffer时立即可以访问的比率; |
buffer HIT% |
高速缓存命中率,反映物理读和缓存命中间的纠结,这个指标即便99% 也不能说明物理读等待少了; |
Redo nowait% |
session在生成redo entry时不用等待的比例,redo相关的资源争用,小于90%,考虑增加log buffer; |
In-memory Sort% |
在内存中完成的排序比率 ;In-memory Sort% = sort(memory) / ( sort(disk)+ sort(memory) ) |
Library Hit% |
library cache命中率,合理值:>95% ,否则加大共享池,使用绑定变量,修改cursor_sharing等参数; |
Soft Parse % |
快照时间内软解析次数和总解析次数 (soft+hard 软解析次数+硬解析次数)的比值; |
Execute to Parse% |
执行解析比 ,公式为 1-(parse/execute),目标为100%; (Execute次数 - Parse次数)/Execute次数 x 100% |
Latch Hit% |
申请不要等待的比率,Latch Hit%:= (1 – (Sum(misses) / Sum(gets))) |
Memory Usage % |
shared pool的空间使用率,稳定在75%-90% |
% SQL with executions>1 |
复用的SQL占总的SQL语句的比率, |
% Memory for SQL w/exec>1 |
执行2次以上的SQL所占内存占总的SQL内存的比率 |
% Non-Parse CPU |
CPU非分析时间在整个CPU时间的百分比,查询实际运行时间/(查询实际运行时间+sql解析时间) |
三 AWR报告分析
分析内容:
1、CPUs、Elapsed、DB Time
2、Load Profile
3、Instance Efficiency Percentages
4、Top 10 Foreground Events by Total Wait Time
5、SQL Statistics
6、Global Cache Load Profile
7、Global Cache Efficiency Percentages
8、Global Cache and Enqueue Services
四 SQL语句分析
1、SQL> explain plan for sql ;
2、SQL>select * from table(dbms_xplan.display_cursor(sql_id));
3、SQL>@?/rdbms/admin/sqltrpt.sql sql_id
五 Oracle常见等待事件解决方法
Sequential Read:调整相关的索引和选择合适的驱动行源
Scattered Read:表明出现很多全表扫描。优化code,cache小表到内存中。
Free Buffer:增大DB_CACHE_SIZE,增大checkpoint的频率,优化代码
Buffer Busy Segment header:增加freelist或者freelistgroups
Buffer Busy Data block:隔离热块;使用反转索引;使用更小的块;增大表的initrans
Buffer Busy Undo header:增加回滚段的数量或者大小
Buffer Busy Undo block Commit more:增加回滚段的数量或者大小
Enqueue–ST:使用本地管理的表空间或者增加预分配的盘区大小
Enqueue–HW:在HWM之上预先分配盘区
Enqueue–TX4:在表或者索引上增大initrans的值或者使用更小的块
Log Buffer Space:增大LOG_BUFFER,改善I/O
Log File Switch:增加或者增大日志文件
Log file sync:减小提交的频率;使用更快的I/O;或者使用裸设备
Write complete waits:增加DBWR;提高CKPT的频率;
gc cr/current request:增加带宽;隔离热块;增加LMS进程数;提高磁盘IO
gc cr multi block busy:在RAC层面将应用功能分离
gc buffer busy acquire/release:分区;反向索引;提高SQL效率;将不同应用功能数据分布在不同数据库实例上
DFS lock handle:增大序列缓存,不使用排序选项
Latch Free:检查具体的等待latch类型,解决方法如下
Library cache:使用绑定变量; 调整shared_pool_size.
Shared pool:使用绑定变量; 调整shared_pool_size.
Redo allocation:减小 redo 的产生; 避免不必要的commits.
Redo copy:增加 _log_simultaneous_copies.
Row cache objects:增加shared_pool_size
Cache buffers chain:增大 _DB_BLOCK_HASH_BUCKETS ; make it prime.
Cache buffers LRU chain:使用多个缓冲池;调整引起大量逻辑读的查询
Oracle数据库awr报告使用与分析相关推荐
- 获取oracle的awr报告,获取Oracle数据库awr报告方法
获取Oracle数据库awr报告方法 远程登录数据库,连接数据库主机 --用sqlplus方式登录数据库 其实在plsql中打开命令行窗口也可以 sqlplus /nolog conn / as sy ...
- ORACLE数据库 AWR报告收集
知识点 AWR收集信息的详细程度受到STATISTICS_LEVEL参数的影响. STATISTICS_LEVEL参数的取值: BASIC:关闭awr统计计算和衍生值.只收集少量的数据库统计信息. T ...
- Oracle数据库服务器IO高的分析方案和案例探讨
Oracle数据库服务器IO高的分析方案和案例探讨 本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨记于心--OR ...
- oracle实验六杨艳华_工作报告之oracle数据库实验报告
oracle 数据库实验报告 [篇一:大型数据库 oracle 10g 实验教程实验五实验报 告] 集美大学计算机工程学院实验报告 课程名称: oracle 10g 数据库基础教程 指导教师:杨艳华 ...
- 关于计算机专业的调整与优化,基于oracle数据库系统性能调整与优化分析-计算机应用技术专业论文.docx...
基于oracle数据库系统性能调整与优化分析-计算机应用技术专业论文 摘要 数据库系统的性能最终决定数据库的可用性和生命力.大多数数据库系统在 运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件 ...
- oracle空间数据库实验报告,Oracle数据库实验报告六 PL/SQL基础
Oracle数据库实验报告六 PL/SQL基础 -by QQC from BTBU [实验目的] PL/SQL的安装网上有很多教程这里就不做赘述了,如果后序需求大的话我再考虑做一期PL/SQL安装使用 ...
- Oracle的AWR报告分析
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告 ...
- oracle10g生成awr报告,oracle 10g awr报告生成步骤及awr报告分析
3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了 这里有一点说明的是, ...
- 非功能测试-数据库awr报告分析
目录 1.使用场景 2.常规分析 2.1确认问题 2.2解决问题 3.awr报告整体观看 1.使用场景 我们项目组在测试阶段,在测试非功能指标时,遇到一系列问题时,麻烦非功能老师帮忙从数据库导出的aw ...
最新文章
- 智能车技术与实践_ROS进阶
- 刷牙刷了这么多年,我们居然都搞错了!
- opensplice dds v6.3.2_信号发生器与DDS技术,如何攻克设计难关?
- WebRTC直播课堂实践:实时互动是核心
- mysql权限层级体系_MySQL权限体系介绍
- 利用WPS 2013文字制作精美的信纸的方法
- TX2不支持TensorRT INT8,int8 官方参考
- 数据挖掘实战(6):实战篇
- 实用主义学python 下载_麻瓜编程:实用主义学Python(5套全)
- MATLAB--数字图像处理 图像平移
- python 从入门到精通——多任务、多线程编程
- 【2016】二月份英语学习总结
- Linux字体颜色的意思
- SpringCloud(3)——SpringDataJpa之EntityManager的CRUD
- 究竟是什么人在买爱马仕?
- 【Android高级】查看手机及应用内存状况的方法
- 压缩文件报错 tar: Exiting with failure status due to previous errors
- [词语辨析] Try, Attempt, Endeavour “尝试” 的用法
- 【积跬步以至千里】App Crashed - WriteMiniDump
- 亨利·明茨伯格(Henry Mintzberg)质量管理学大师