如何解读ORACLE AWR性能报告和ASH性能报告

分类:编程技术 时间:2024-02-20 16:10 浏览:0 评论:0
0
今天和大家聊聊如何解读ORACLE AWR性能报告和ASH性能报告。很多人可能对此还不是很了解。为了让大家更好的了解,小编为大家总结了以下内容。希望您能根据这篇文章来阅读。获得一些东西。

数据库性能分析可以分为会话级和系统级:如果确定某个会话存在性能问题,最常见的分析方法是对该会话做一个SQL_TRACE或者10046事件,分析该会话的性能问题。跟踪文件。找到问题所在。如果无法确定哪个会话存在性能问题,则需要在实例级别进行问题分析。

awr是Oracle 10g下提供的性能收集和分析工具。它可以提供一段时间内整个系统资源使用情况的报告。
awr默认采集最近7天的采集信息。您还可以修改快照集合间通过以下方法获取val信息。


awr通过Oracle中运行的后台进程自动定期收集并保存数据库的性能数据。每小时,awr 都会生成一个性能数据快照,为 DBA 提供数据库在某个时间点的情况。性能分析数据信息。
执行$ORACLE_HOME/RDBMS/ADMIN/awrrpt.sql生成awr报告。

awr报告要根据系统的实际情况(OLAP或OLTP)进行分析。例如,对于OLTP系统,应该更加关注库命中和缓冲区命中。但对于OLAP来说并不是很重要。

awr报告不需要全面阅读。综合阅读可能会让这个想法更加混乱。如果性能问题是由某种原因引起的,则会在报告的各个部分中进行相应的呈现。

在RAC结构的数据库中进行性能分析时,通常需要尝试为每个实例制作一份awr性能报告,因为不可能知道每个用户连接到哪个实例。

对于一个系统来说,需要制作多份awr报告来获取所有时间段的系统性能数据。在查看awr报告时,如果了解数据库业务,应该查看一些可能存在性能问题的部分,并根据业务的实际情况进行判断;也可以从TOP5的等待事件中触发,按照等待事件的类型,进入相应的部分获取详细信息,对系统性能问题做出判断。

通过awr报告,您可以: 1)查看系统的负载和繁忙度; 2)查看系统的瓶颈以及已经发生的等待事件; 3)查看可以优化的sql;

1.报告摘要:
1.SESSIONS:连接到实例的会话数,大概数并发的数据库的用户;
2.cursors/session:每个会话平均打开的游标数量;
3.DB time:用户操作所花费的时间集合,包括CPU时间和等待事件;
4.缓存大小:列出性能采集开始和结束时awr的数据缓冲池和共享池的大小,了解系统内存消耗变化,可以判断内存是否SGA分配是否合理;
5.负载概况:数据库资源负载的详细列表,用于判断系统的繁忙程度。分为每秒资源负载和每个事务的资源负载。
6. 实例效率百分比:内存效率统计,对于OLTP系统来说,应该尽可能接近100%。如果数据偏低,就必须进行相关的分析和研究。
1) buffer nowait:以非等待方式获取数据库;
2) redo nowait:以非等待方式获取redo数据g方式;
3)buffer hit:内存数据块命中率;
4)in-memory sort:内存中排序的数据块的百分比;
5)library hit:命中率共享池中的SQL解析;
6)执行解析:执行次数与分析次数。 Percent;
7)latch Hit:latch命中率百分比;
8)parse cpu to parse elapsed:消耗的CPU时间占总解析时间的百分比;
9)non-parse cpu :cpu非分析时间占整个CPU时间的百分比;
7.TOP 5 TIMED EVENTS:查看前5个耗时和等待事件。您应该联系报告的收集周期,看看耗时是否合理。 。一般来说,CPU时间在TOP5中出现的最先,并且消耗了总时间的大部分。表明系统运行正常。
常见的ORACLE等待事件,请参考http://blog.itpub.net/29371470/viewspace-1063994/
以上部分是整体情况awr报告的摘要,这是需要重点关注的部分。根据这些信息可以了解等待时间较长的事件,然后根据这些事件,去下面的具体部分查找问题的原因。

2. 等待事件统计:
1. 时间模型统计列出了各种操作占用数据库时间的比例;
2. Foreground Wait Class 列出了等待事件类型,您可以通过可以看到等待时间最长的事件;
3. Foreground Wait Events 是第一部分 TOP 5 TIMED EVENTS 的详细部分;
4. Background Wait Events 后台进程等待事件的实例;< br/ >
3. SQL统计:
1. SQL ordering by Elapsed Time:按照sql的执行时间从长到短排序;
1)CPU time:CPU时间消耗sql;
br/> 2) elapsed time: sql执行时间;
3)executions: sql执行次数;
4) elapsed per exec: 执行时间消耗
2. SQL ordering by CPU Time: 根据sql的CPU time从长到短排序:
3. SQL ordering by User I/O Wait Time:
4. SQL ordering by Gets:根据sql获取内存数据块 按数量排序:
5. SQLorderedbyReads根据sql进行物理读排序:
6. SQLorderedbyPhysical Reads(未优化) :
7. SQL Ordered by Executions: 根据sql的执行次数排序;
8. SQL Ordered by Parse Calls: 根据sql被分析的次数信息排序(不区分软解析和硬解析);
9、按Version Count排序的SQL:sql生成多个版本信息; version count是sql的版本号;
以上指标孤立起来没有什么实际意义,需要看系统的类型和性能问题。是哪一方面,重点分析一下。例如,SQL 按执行排序,SQL oordered by Parse Calls对于OLTP来说更重要,而OLAP系统则不需要太多关注。

4.实例活动统计:
本次会话使用的cpu:oracle消耗的cpu单位,可以看到cpu的负载情况;如果total为1000,每秒为80,cpuunits个数为2;
那么整个统计周期消耗了1000个cpuunits,每秒消耗了80个cpuunits,对应实际时间为80/100=0.8秒;每个cpu每秒消耗80个/2=40个CPU单元;每个CPU每秒处理所用的时间为40/100=0.4秒。

5. IO Stats:
Tablespace IO Stats:表空间的IO性能统计;
File IO Stats:
1)reads:发生了多少次物理读;
2) writes: 发生了多少次写操作;
3) Av Reads: 每秒物理读的次数;
4) Av Rd: 一次物理读的平均时间;< br/> /> 5) Blks/Rd: 每次读取多少个数据块;
6) Av writes: 读取的数据块数r of writes per Second;
7) Buffer waits: 等待获取内存数据块的次数;
br/> 按逻辑读分段和按物理读分段显示IO情况对象视角。通过分析这两部分信息,可以具体了解哪些对象访问导致了IO性能下降。


ASH侧重于当前数据中活动会话的信息分析,这些数据长期保存在数据字典中,可以通过查询视图V$ACTIVE_SESSION_HISTROY来获取。
运行脚本为 $ORACLE_HOME/RDBMS/ADMIN/ashrpt.sql
使用同一目录中的 ashrpti.sql 脚本为其他数据库或实例,或为会话 ID、SQL_ID 生成 ASH 性能报告,或者某个程序 或者某个类型的等待事件
生成ASH报告,如下图:

ASH报告分析如下:
如果DATA SOURCE来自DBA_HIST_ACTIVE_SESS_HISTORY,n 该信息来自AWR的快照;如果来自V$ACTIVE_SESSION_HISTORY,则视图信息表示内存中存储的性能数据的信息。
1. top user events:用户会话的等待事件信息;
2. top event p1/p2/p3 value:等待事件的具体描述;
3. top service/module:根据活动频率列出前 5 个应用程序;
4. 热门 sql 命令类型:列出数据库中最频繁活动的操作;
5. 热门 sql 语句:根据活动频率列出 sql 语句;< br/> 6. 顶级会话:列出最频繁活动的会话或进程;
7. 运行 PQ 的顶级会话:列出活动最频繁的顶级并行执行会话信息;
8. 顶级数据库文件: IO最频繁的数据文件;
9. Activity over time:按照时间间隔对采集时间段进行分组后,eac中的等待事件信息h 时间间隔生成。

看完以上内容,您是不是对如何解读ORACLE AWR性能报告和ASH性能报告有了进一步的了解呢?如果您想了解更多知识或相关内容,请关注行业资讯频道。感谢您的支持。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何解读ORACLE AWR性能报告和ASH性能报告

用户评论