ORACLE AWR报告详解Word文档格式.docx

上传人:b****3 文档编号:7775033 上传时间:2023-05-09 格式:DOCX 页数:141 大小:163.35KB
下载 相关 举报
ORACLE AWR报告详解Word文档格式.docx_第1页
第1页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第2页
第2页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第3页
第3页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第4页
第4页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第5页
第5页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第6页
第6页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第7页
第7页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第8页
第8页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第9页
第9页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第10页
第10页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第11页
第11页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第12页
第12页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第13页
第13页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第14页
第14页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第15页
第15页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第16页
第16页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第17页
第17页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第18页
第18页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第19页
第19页 / 共141页
ORACLE AWR报告详解Word文档格式.docx_第20页
第20页 / 共141页
亲,该文档总共141页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ORACLE AWR报告详解Word文档格式.docx

《ORACLE AWR报告详解Word文档格式.docx》由会员分享,可在线阅读,更多相关《ORACLE AWR报告详解Word文档格式.docx(141页珍藏版)》请在冰点文库上搜索。

ORACLE AWR报告详解Word文档格式.docx

78.79(mins)

DBTime:

11.05(mins)

DBTime不包括Oracle后台进程消耗的时间。

如果DBTime远远小于Elapsed时间,说明数据库比较空闲。

dbtime=cputime+waittime(不包含空闲等待)(非后台进程)说白了就是dbtime就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间DBtime=cputime+allofnonidlewaiteventtime

在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。

说明系统压力非常小。

列出下面这两个来做解释:

ReportA:

SnapIdSnapTimeSessionsCurs/Sess

---------------------------------------------

461024-Jul-0822:

00:

546819.1

461224-Jul-0823:

25171.7

59.51(mins)

466.37(mins)

ReportB:

309813-Nov-0721:

373913.6

310213-Nov-0722:

154016.4

59.63(mins)

19.49(mins)

服务器是AIX的系统,4个双核cpu,共8个核:

/sbin>

bindprocessor-q

Theavailableprocessorsare:

01234567

先说ReportA,在snapshot间隔中,总共约60分钟,cpu就共有60*8=480分钟,DBtime为466.37分钟,则:

cpu花费了466.37分钟在处理Oralce非空闲等待和运算上(比方逻辑读)

也就是说cpu有466.37/480*100%花费在处理Oracle的操作上,这还不包括后台进程

看ReportB,总共约60分钟,cpu有19.49/480*100%花费在处理Oracle的操作上

很显然,2中服务器的平均负载很低。

从awrreport的Elapsedtime和DBTime就能大概了解db的负载。

可是对于批量系统,数据库的工作负载总是集中在一段时间内。

如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。

这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。

ReportSummary

CacheSizes

Begin

End

BufferCache:

3,344M

StdBlockSize:

8K

SharedPoolSize:

704M

LogBuffer:

14,352K

显示SGA中每个区域的大小(在AMM改变它们之后),可用来与初始参数值比较。

sharedpool主要包括librarycache和dictionarycache。

librarycache用来存储最近解析(或编译)后SQL、PL/SQL和Javaclasses等。

librarycache用来存储最近引用的数据字典。

发生在librarycache或dictionarycache的cachemiss代价要比发生在buffercache的代价高得多。

因此sharedpool的设置要确保最近使用的数据都能被cache。

LoadProfile

PerSecond

PerTransaction

Redosize:

918,805.72

775,912.72

Logicalreads:

3,521.77

2,974.06

Blockchanges:

1,817.95

1,535.22

Physicalreads:

68.26

57.64

Physicalwrites:

362.59

306.20

Usercalls:

326.69

275.88

Parses:

38.66

32.65

Hardparses:

0.03

Sorts:

0.61

0.51

Logons:

0.01

Executes:

354.34

299.23

Transactions:

1.18

%BlockschangedperRead:

51.62

RecursiveCall%:

51.72

Rollbackpertransaction%:

85.49

RowsperSort:

########

显示数据库负载概况,将之与基线数据比较才具有更多的意义,如果每秒或每事务的负载变化不大,说明应用运行比较稳定。

单个的报告数据只说明应用的负载情况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒1~2个、Hardparses大于每秒100、全部parses超过每秒300表明可能有争用问题。

Redosize:

每秒产生的日志大小(单位字节),可标志数据变更频率,数据库任务的繁重与否。

Logicalreads:

每秒/每事务逻辑读的块数.平决每秒产生的逻辑读的block数。

LogicalReads=ConsistentGets+DBBlockGets

Blockchanges:

每秒/每事务修改的块数

Physicalreads:

每秒/每事务物理读的块数

Physicalwrites:

每秒/每事务物理写的块数

Usercalls:

每秒/每事务用户call次数

Parses:

SQL解析的次数.每秒解析次数,包括fastparse,softparse和hardparse三种数量的综合。

软解析每秒超过300次意味着你的"

应用程序"

效率不高,调整session_cursor_cache。

在这里,fastparse指的是直接在PGA中命中的情况(设置了session_cached_cursors=n);

softparse是指在sharedpool中命中的情形;

hardparse则是指都不命中的情况。

Hardparses:

其中硬解析的次数,硬解析太多,说明SQL重用率不高。

每秒产生的硬解析次数,每秒超过100次,就可能说明你绑定使用的不好,也可能是共享池设置不合理。

这时候可以启用参数cursor_sharing=similar|force,该参数默认值为exact。

但该参数设置为similar时,存在bug,可能导致执行计划的不优。

Sorts:

每秒/每事务的排序次数

Logons:

每秒/每事务登录的次数

Executes:

每秒/每事务SQL执行次数

Transactions:

每秒事务数.每秒产生的事务数,反映数据库任务繁重与否。

BlockschangedperRead:

表示逻辑读用于修改数据块的比例.在每一次逻辑读中更改的块的百分比。

RecursiveCall:

递归调用占所有操作的比率.递归调用的百分比,如果有很多PL/SQL,那么这个值就会比较高。

Rollbackpertransaction:

每事务的回滚率.看回滚率是不是很高,因为回滚很耗资源,如果回滚率过高,可能说明你的数据库经历了太多的无效操作,过多的回滚可能还会带来UndoBlock的竞争该参数计算公式如下:

Round(Userrollbacks/(usercommits+userrollbacks),4)*100%。

RowsperSort:

每次排序的行数

注:

Oracle的硬解析和软解析

  提到软解析(softprase)和硬解析(hardprase),就不能不说一下Oracle对sql的处理过程。

当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:

  1、语法检查(syntaxcheck)

  检查此sql的拼写是否语法。

  2、语义检查(semanticcheck)

  诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。

  3、对sql语句进行解析(prase)

  利用内部算法对sql进行解析,生成解析树(parsetree)及执行计划(executionplan)。

  4、执行sql,返回结果(executeandreturn)

  其中,软、硬解析就发生在第三个过程里。

  Oracle利用内部的hash算法来取得该sql的hash值,然后在librarycache里查找是否存在该hash值;

  假设存在,则将此sql与cache中的进行比较;

  假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。

这也就是软解析的过程。

  诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。

这个过程就叫硬解析。

  创建解析树、生成执行计划对于sql的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。

InstanceEfficiencyPercentages(Target100%)

BufferNowait%:

100.00

RedoNoWait%:

BufferHit%:

98.72

In-memorySort%:

99.86

LibraryHit%:

99.97

SoftParse%:

99.92

ExecutetoParse%:

89.09

LatchHit%:

99.99

ParseCPUtoParseElapsd%:

7.99

%Non-ParseCPU:

99.95

本节包含了Oracle关键指标的内存命中率及其它数据库实例操作的效率。

其中BufferHitRatio也称CacheHitRatio,LibraryHitratio也称LibraryCacheHitratio。

同LoadProfile一节相同,这一节也没有所谓“正确”的值,而只能根据应用的特点判断是否合适。

在一个使用直接读执行大型并行查询的DSS环境,20%的BufferHitRatio是可以接受的,而这个值对于一个OLTP系统是完全不能接受的。

根据Oracle的经验,对于OLTPT系统,BufferHitRatio理想应该在90%以上。

BufferNowait表示在内存获得数据的未等待比例。

在缓冲区中获取Buffer的未等待比率。

BufferNowait的这个值一般需要大于99%。

否则可能存在争用,可以在后面的等待事件中进一步确认。

bufferhit表示进程从内存中找到数据块的比率,监视这个值是否发生重大变化比这个值本身更重要。

对于一般的OLTP系统,如果此值低于80%,应该给数据库分配更多的内存。

数据块在数据缓冲区中的命中率,通常应在95%以上。

否则,小于95%,需要调整重要的参数,小于90%可能是要加db_cache_size。

一个高的命中率,不一定代表这个系统的性能是最优的,比如大量的非选择性的索引被频繁访问,就会造成命中率很高的假相(大量的dbfilesequentialread),但是一个比较低的命中率,一般就会对这个系统的性能产生影响,需要调整。

命中率的突变,往往是一个不好的信息。

如果命中率突然增大,可以检查topbuffergetSQL,查看导致大量逻辑读的语句和索引,如果命中率突然减小,可以检查topphysicalreadsSQL,检查产生大量物理读的语句,主要是那些没有使用索引或者索引被删除的。

RedoNoWait表示在LOG缓冲区获得BUFFER的未等待比例。

如果太低(可参考90%阀值),考虑增加LOGBUFFER。

当redobuffer达到1M时,就需要写到redolog文件,所以一般当redobuffer设置超过1M,不太可能存在等待buffer空间分配的情况。

当前,一般设置为2M的redobuffer,对于内存总量来说,应该不是一个太大的值。

libraryhit表示Oracle从LibraryCache中检索到一个解析过的SQL或PL/SQL语句的比率,当应用程序调用SQL或存储过程时,Oracle检查LibraryCache确定是否存在解析过的版本,如果存在,Oracle立即执行语句;

如果不存在,Oracle解析此语句,并在LibraryCache中为它分配共享SQL区。

低的libraryhitratio会导致过多的解析,增加CPU消耗,降低性能。

如果libraryhitratio低于90%,可能需要调大sharedpool区。

STATEMENT在共享区的命中率,通常应该保持在95%以上,否则需要要考虑:

加大共享池;

使用绑定变量;

修改cursor_sharing等参数。

LatchHit:

Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。

要确保LatchHit>

99%,否则意味着SharedPoollatch争用,可能由于未共享的SQL,或者LibraryCache太小,可使用绑定变更或调大SharedPool解决。

要确保>

99%,否则存在严重的性能问题。

当该值出现问题的时候,我们可以借助后面的等待时间和latch分析来查找解决问题。

ParseCPUtoParseElapsd:

解析实际运行时间/(解析实际运行时间+解析中等待资源时间),越高越好。

计算公式为:

ParseCPUtoParseElapsd%=100*(parsetimecpu/parsetimeelapsed)。

即:

解析实际运行时间/(解析实际运行时间+解析中等待资源时间)。

如果该比率为100%,意味着CPU等待时间为0,没有任何等待。

Non-ParseCPU:

SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。

%Non-ParseCPU=round(100*1-PARSE_CPU/TOT_CPU),2)。

如果这个值比较小,表示解析消耗的CPU时间过多。

与PARSE_CPU相比,如果TOT_CPU很高,这个比值将接近100%,这是很好的,说明计算机执行的大部分工作是执行查询的工作,而不是分析查询的工作。

ExecutetoParse:

是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。

该值越高表示一次解析后被重复执行的次数越多。

ExecutetoParse=100*(1-Parses/Executions)。

本例中,差不多每execution5次需要一次parse。

所以如果系统Parses>

Executions,就可能出现该比率小于0的情况。

该值<

0通常说明sharedpool设置或者语句效率存在问题,造成反复解析,reparse可能较严重,或者是可能同snapshot有关,通常说明数据库性能存在问题。

In-memorySort:

在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。

考虑调大PGA(10g)。

如果低于95%,可以通过适当调大初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE来解决,注意这两个参数设置作用的范围时不同的,SORT_AREA_SIZE是针对每个session设置的,PGA_AGGREGATE_TARGET则时针对所有的sesion的。

SoftParse:

软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。

sql在共享区的命中率,小于<

95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用

SharedPoolStatistics

MemoryUsage%:

47.19

47.50

%SQLwithexecutions>

1:

88.48

79.81

%MemoryforSQLw/exec>

79.99

73.52

MemoryUsage%:

对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明SharedPool有浪费,而如果高于90,说明共享池中有争用,内存不足。

这个数字应该长时间稳定在75%~90%。

如果这个百分比太低,表明共享池设置过大,带来额外的管理上的负担,从而在某些条件下会导致性能的下降。

如果这个百分率太高,会使共享池外部的组件老化,如果SQL语句被再次执行,这将使得SQL语句被硬解析。

在一个大小合适的系统中,共享池的使用率将处于75%到略低于90%的范围内.

SQLwithexecutions>

1:

执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。

在一个趋向于循环运行的系统中,必须认真考虑这个数字。

在这个循环系统中,在一天中相对于另一部分时间的部分时间里执行了一组不同的SQL语句。

在共享池中,在观察期间将有一组未被执行过的SQL语句,这仅仅是因为要执行它们的语句在观察期间没有运行。

只有系统连续运行相同的SQL语句组,这个数字才会接近100%。

MemoryforSQLw/exec>

执行次数大于1的SQL消耗内存的占比。

这是与不频繁使用的SQL语句相比,频繁使用的SQL语句消耗内存多少的一个度量。

这个数字将在总体上与%SQLwithexecutions>

1非常接近,除非有某些查询任务消耗的内存没有规律。

在稳定状态下,总体上会看见随着时间的推移大约有75%~85%的共享池被使用。

如果Statspack报表的时间窗口足够大到覆盖所有的周期,执行次数大于一次的SQL语句的百分率应该接近于100%。

这是一个受观察之间持续时间影响的统计数字。

可以期望它随观察之间的时间长度增大而增大。

小结:

通过ORACLE的实例有效性统计数据,我们可以获得大概的一个整体印象,然而我们并不能由此来确定数据运行的性能。

当前性能问题的确定,我们主要还是依靠下面的等待事件来确认。

我们可以这样理解两部分的内容,hit统计帮助我们发现和预测一些系统将要产生的性能问题,由此我们可以做到未雨绸缪。

而wait事件,就是表明当前数据库已经出现了性能问题需要解决,所以是亡羊补牢的性质。

Top5TimedEvents

Event

Waits

Time(s)

AvgWait(ms)

%TotalCallTime

WaitClass

CPUtime

515

77.6

SQL*Netmoredatafromclient

27,319

64

2

9.7

Network

logfileparallelwrite

5,497

47

9

7.1

SystemI/O

dbfilesequentialread

7,900

35

4

5.3

UserI/O

dbfileparallelwrite

4,806

34

7

5.1

这是报告概要的最后一节,显示了系统中最严重的5个等待,按所占等待时间的比例倒序列示。

当我们调优时,总希望观察到最显著的效果,因此应当从这里入手确定我们下一步做什么。

例如如果‘bufferbusywait’是较严重的等待事件,我们应当继续研究报告中BufferWait和File/TablespaceIO区的内容,识别哪些文件导致了问题。

如果最严重的等待事件是I/O事件,我们应当研究按物理读排序的SQL语句区以识别哪些语句在执行大量I/O,并研究Tablespace和I/O区观察较慢响应时间的文件。

如果有较高的LATCH等待,就需要察看详细的LATCH统计识别哪些LATCH产生的问题。

一个性能良好的系统,cputime应该在top5的前面,否则说明你的系统大部分时间都用在等待上。

在这里,logfileparallelwrite是相对比较多的等待,占用了7%的CPU时间。

通常,在没有问题的数据库中,CPUtime总是列在第一个。

更多的等待事件,参见本报告的WaitEvents一节。

RACStatistics

NumberofInstances:

GlobalCacheLoadProfile

GlobalCacheblocksreceived:

4.16

3.51

GlobalCacheblocksserved:

5.97

5.04

GCS/GESmessagesreceived:

408.47

344.95

GCS/GESmessagessent:

258.03

217.90

DBWRFusionwrites:

0.05

EstdInterconnecttraffic(KB)

211.16

GlobalCacheEfficiencyPercentages(Targetlocal+remote100%)

Bufferaccess-localcache%:

98.60

Bufferaccess-remotecache%:

0.12

Buffer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2