资源预览内容
第1页 / 共67页
第2页 / 共67页
第3页 / 共67页
第4页 / 共67页
第5页 / 共67页
第6页 / 共67页
第7页 / 共67页
第8页 / 共67页
第9页 / 共67页
第10页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
深圳博睿同创信息技术有限公司AWR报告具体分析 AWR 是 Oracle 10g 版本 推出的新特性, 全称叫AutomaticWorkloadRepository-自动负载信息库, AWR 是通过对比两次快,照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分。 WORKLOAD REPOSITORY report for DB NameDB IdInstanceInst numReleaseRACHostICCI1314098396ICCI11.3.0YESHPGICCI1Snap IdSnap TimeSessionsCursors/SessionBegin Snap:267825-Dec-08 14:04:50241.5End Snap:268025-Dec-08 15:23:37261.5Elapsed:78.79 (mins)DB Time:11.05 (mins)DB Time不包括Oracle后台进程消耗的时间。假如DB Time远远小于Elapsed时间,说明数据库比较空闲。db time= cpu time + wait time(不包含空闲等待) (非后台进程)说白了就是db time就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间DB time = cpu time + all of nonidle wait event time在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。说明系统压力特别小。列出下面这两个来做说明:Report A:Snap Id Snap Time Sessions Curs/Sess- - - -Begin Snap: 4610 24-Jul-08 22:00:54 68 19.1End Snap: 4612 24-Jul-08 23:00:25 17 1.7Elapsed: 59.51 (mins)DB Time: 466.37 (mins)Report B:Snap Id Snap Time Sessions Curs/Sess- - - -Begin Snap: 3098 13-Nov-07 21:00:37 39 13.6End Snap: 3102 13-Nov-07 22:00:15 40 16.4Elapsed: 59.63 (mins)DB Time: 19.49 (mins)服务器是AIX的系统,4个双核cpu,共8个核:/sbin bindprocessor -qThe available processors are: 0 1 2 3 4 5 6 7先说Report A,在snapshot间隔中,总共约60分钟,cpu就共有60*8=480分钟,DB time为466.37分钟,则:cpu花费了466.37分钟在处理Oralce非空闲等待和运算上(比方逻辑读)也就是说cpu有 466.37/480*100% 花费在处理Oracle的操作上,这还不包括后台进程看Report B,总共约60分钟,cpu有 19.49/480*100% 花费在处理Oracle的操作上很明显,2中服务器的平均负载很低。从awr report的Elapsed time和DB Time就能或许了解db的负载。可是对于批量系统,数据库的工作负载总是集中在一段时间内。假如快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。Report SummaryCache Sizes BeginEndBuffer Cache:3,344M3,344MStd Block Size:8KShared Pool Size:704M704MLog Buffer:14,352K显示SGA中每个区域的大小(在AMM变更它们之后),可用来与初始参数值比较。shared pool主要包括library cache和dictionary cache。library cache用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。library cache用来存储最近引用的数据字典。发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。因此shared pool的设置要确保最近运用的数据都能被cache。Load ProfilePer SecondPer TransactionRedo size:918,805.72775,912.72Logical reads:3,521.772,974.06Block changes:1,817.951,535.22Physical reads:68.2657.64Physical writes:362.59306.20User calls:326.69275.88Parses:38.6632.65Hard parses:0.030.03Sorts:0.610.51Logons:0.010.01Executes:354.34299.23Transactions:1.18% Blocks changed per Read:51.62Recursive Call %:51.72Rollback per transaction %:85.49Rows per Sort:#显示数据库负载概况,将之与基线数据比较才具有更多的意义,假如每秒或每事务的负载变更不大,说明应用运行比较稳定。单个的报告数据只说明应用的负载状况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒12个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题。Redo size:每秒产生的日志大小(单位字节),可标记数据变更频率, 数据库任务的繁重与否。Logical reads:每秒/每事务逻辑读的块数.平决每秒产生的逻辑读的block数。Logical Reads= Consistent Gets + DB Block Gets Block changes:每秒/每事务修改的块数Physical reads:每秒/每事务物理读的块数Physical writes:每秒/每事务物理写的块数User calls:每秒/每事务用户call次数Parses:SQL解析的次数.每秒解析次数,包括fast parse,soft parse和hard parse三种数量的综合。 软解析每秒超过300次意味着你的应用程序效率不高,调整session_cursor_cache。在这里,fast parse指的是干脆在PGA中命中的状况(设置了session_cached_cursors=n);soft parse是指在shared pool中命中的情形;hard parse则是指都不命中的状况。Hard parses:其中硬解析的次数,硬解析太多,说明SQL重用率不高。每秒产生的硬解析次数, 每秒超过100次,就可能说明你绑定运用的不好,也可能是共享池设置不合理。这时候可以启用参数cursor_sharing=similar|force,该参数默认值为exact。但该参数设置为similar时,存在bug,可能导致执行安排的不优。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:每次排序的行数注: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的执行来说是开销昂贵的动作,所以,应当极力避开硬解析,尽量运用软解析。Instance Efficiency Percentages (Target 100%) Buffer Nowait %:100.00Redo NoWait %:100.00Buffer Hit %:98.72In-memory Sort %:99.86Library Hit %:99.97Soft Parse %:99.92Execute to Parse %:89.09Latch Hit %:99.99Parse CPU to Parse Elapsd %:7.99% Non-Parse CPU:99.95本节包含了Oracle关键指标的内存命中率及其它数据库实例操作的效率。其中Buffer Hit Rati
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号