`

oracle Statspack 报告解析之 Top 5 Timed Events(等待事件)

 
阅读更多

 

常见等待事件说明:


oracle等待事件是衡量oracle运行状况的重要依据及指示,主要有空闲等待事件和非空闲等待事件。


TIMED_STATISTICS:=TRUE,等待事件按等待的时间排序,= FALSE,等待事件按等待的数量排序。


运行statspack期间必须session上设置TIMED_STATISTICS = TRUE。


空闲等待事件是oracle正等待某种工作,在诊断和优化数据库时候,不用过多注意这部分事件,非空闲等待事件专门针对oracle的活动,指数据库任务或应用程序运行过程中发生的等待,这些等待事件是我们在调整数据库应该关注的。


 

Top 5 Timed Events                                  Avg %Total


~~~~~~~~~~~~~~~~~~                     wait   Call


Event                                            Waits       Time (s)   (ms)   Time


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


log file sync                                    1,088          15      14   53.6


db file sequential read                      285           6        21   21.9


control file sequential read                337          4        11   13.3


CPU time                                                           2                 8.2


log file parallel write                        1,042          1        0      1.8


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



这里是比其他任何事件都能使速度减慢的事件。比较影响性能的常见等待事件:

db file scattered read:该事件通常与全表扫描有关。因为全表扫描是被放入内存中进行的进行的,通常情况下它不可能被放入连续的缓冲区中,所以就散布在缓冲区的缓存中。该指数的数量过大说明缺少索引或者限制了索引的使用(也可以调整optimizer_index_cost_adj)。这种情况也可能是正常的,因为执行全表扫描可能比索引扫描效率更高。当系统存在这些等待时,需要通过检查来确定全表扫描是否必需的来调整。如果经常必须进行全表扫描,而且表比较小,把该表存人keep池。如果是大表经常进行全表扫描,那么应该是OLAP系统,而不是OLTP的。


db file sequential read:该事件说明在单个数据块上大量等待,该值过高通常是由于表间连接顺序很糟糕,或者使用了非选择性索引。通过将这种等待与statspack报表中已知其它问题联系起来(如效率不高的sql),通过检查确保索引扫描是必须的,并确保多表连接的连接顺序来调整, DB_CACHE_SIZE可以决定该事件出现的频率。


db file sequential read:该事件说明在单个数据块上大量等待,该值过高通常是由于表间连接顺序很糟糕,或者使用了非选择性索引。通过将这种等待与statspack报表中已知其它问题联系起来(如效率不高的sql),通过检查确保索引扫描是必须的,并确保多表连接的连接顺序来调整,DB_CACHE_SIZE可以决定该事件出现的频率。


buffer busy wait:当缓冲区以一种非共享方式或者如正在被读入到缓冲时,就会出现该等待。该值不应该大于1%,确认是不是由于热点块造成(如果是可以用反转索引,或者用更小块大小)。


latch free:常跟应用没有很好的应用绑定有关。闩锁是底层的队列机制(更加准确的名称应该是互斥机制),用于保护系统全局区(SGA)共享内存结构闩锁用于防止对内存结构的并行访问。如果闩锁不可用,就会记录一次闩锁丢失。绝大多数得闩锁问题都与使用绑定变量失败(库缓存闩锁)、生成重作问题(重执行分配闩锁)、缓存的争用问题(缓存LRU链) 以及缓存的热数据宽块(缓存链)有关。当闩锁丢失率高于0.5%时,需要调整这个问题。


log buffer space:日志缓冲区写的速度快于LGWR写REDOFILE的速度,可以增大日志文件大小,增加日志缓冲区的大小,或者使用更快的磁盘来写数据。


logfile switch:通常是因为归档速度不够快,需要增大重做日志。


log file sync:当一个用户提交或回滚数据时,LGWR将会话得重做操作从日志缓冲区填充到日志文件中,用户的进程必须等待这个填充工作完成。在每次提交时都出现,如果这个等待事件影响到数据库性能,那么就需要修改应用程序的提交频率, 为减少这个等待事件,须一次提交更多记录,或者将重做日志REDO LOG文件访在不同的物理磁盘上。

Wait time: 等待时间包括日志缓冲的写入和发送操作。


等待事件相关的几个视图:


V$SESSION:  代表数据库活动的开始,视为源起。


V$SESSION_WAIT:  视图用以实时记录活动SESSION的等待情况,是当前信息。


V$SESSION_WAIT_HISTORY:  是对V$SESSION_WAIT的简单增强,记录活动SESSION的最近10次等待。


V$SQLTEXT:  当数据库出现瓶颈时,通常可以从V$SESSION_WAIT找到那些正在等待资源的SESSION,通过SESSION的SID,联合V$SESSION和V$SQLTEXT视图就可以捕获这些SESSION正在执行的SQL语句。


V$ACTIVE_SESSION_HISTORY: 是ASH的核心,用以记录活动SESSION的历史等待信息,每秒采样一次,这部分内容记录在内存中,期望值是记录一个小时的内容。


WRH#_ACTIVE_SESSION_HISTORY : 是V$ACTIVE_SESSION_HISTORY在AWR的存储地。


V$ACTIVE_SESSION_HISTORY: 中的信息会被定期(每小时一次)的刷新到负载库中,并缺省保留一个星期用于分析。


DBA_HIST_ACTIVE_SESS_HISTORY: 视图是WRH#_ACTIVE_SESSION_HISTORY视图和其他几个视图的联合展现,通常通过这个视图进行历史数据的访问。


V$SYSTEM_EVENT 由于V$SESSION记录的是动态信息,和SESSION的生命周期相关,而并不记录历史信息,所以ORACLE提供视图V$SYSTEM_EVENT来记录数据库自启动以来所有等待事件的汇总信息。通过这个视图,用户可以迅速获得数据库运行的总体概况。


更多内容参考:http://blog.csdn.net/tianlesoftware/article/details/4682329

 


Oracle 常见的33个等待事件: http://blog.csdn.net/tianlesoftware/archive/2010/08/12/5807800.aspx

分享到:
评论

相关推荐

    常见问题:如何使用Oracle AWR报告来诊断数据库性能问题

    报告中通常包括:Top 5 Timed Events(最耗时的前五个事件)、SQL Statistics(SQL统计信息)、Wait Events(等待事件)等几个关键部分。 Top 5 Timed Events 部分列出了消耗最多资源的事件,它可以帮助数据库管理...

    Oracle AWR报告使用分析

    3.5 TOP5事件(Top 5 Timed Events)列出了数据库响应时间中最耗时的五个事件,有助于快速定位瓶颈。 3.6 SQL统计(SQL Statistics)提供了对数据库中执行的SQL语句的统计信息,包括执行次数、总响应时间、物理读写...

    Oracle9i的数据库优化.pdf

    在STATSPACK报告中,Top 5 Timed Events展示了耗时最多的五个事件,如control file parallel write和log file sync,这些等待事件可能是性能问题的来源。控制文件并行写入和日志文件同步是数据库事务提交的重要部分...

    Oracle数据库业务优化心得

    STATSPACK报告中的"Top 5 Timed Events"部分是识别性能瓶颈的关键,它显示了Oracle当前最主要的等待事件。等待事件可能是由于各种因素,如磁盘I/O、CPU使用率、锁定等。通过对USR、WIO、IDLE的SAR命令输出分析,可以...

    oracle优化工具

    - **Top Timed Events**:列出了采样期间最耗时的等待事件,帮助快速定位性能瓶颈。 - **Top SQL Tuning**:显示了执行最频繁或最耗时的SQL语句,便于进一步优化。 #### 八、10g DB Control 10g DB Control是...

    ORACLE数据库变得非常慢解决方案一例.pdf

    4. **分析Top 5 Timed Events**:针对耗时最多的事件进行针对性优化,例如优化索引策略、使用绑定变量、并行查询等。 5. **I/O子系统优化**:检查磁盘配置,考虑使用RAID、SSD或更高效的存储解决方案,以提高I/O性能...

    oracle 语句优化

    STATSPACK报告中的"Top 5 Timed Events"显示了主要等待事件,帮助识别问题所在。SAR命令的USR、WIO、IDLE比例则反映了CPU使用情况和I/O负载。 在定位到具体问题SQL后,分析执行计划是关键步骤。执行计划揭示了SQL...

    STATSPACK report

    **Top 5 Timed Events** - **db file scattered read**: - **Waits**: 1,172,898 - **Time(s)**: 8,759 - **% Total Elapsed Time**: 53.76 - **CPU time**: - **Waits**: 3,796 - **Time(s)**: 23.30 - **db...

    常见问题:如何使用AWR报告来诊断数据库性能问题+(Doc+ID+1523048.1).pdf

    - **Top 5 Timed Events**:显示耗时最多的前五个事件,比如CPU时间、等待事件。 - **SQL Statistics**:分析高耗时的SQL语句,有助于优化数据库查询。 - **Other SQL Statistics Sections**:提供其他的SQL相关统计...

    oracle优化

    5. **等待事件**(Timed Events):db file scattered read、latch free、db file sequential read等是等待时间最多的事件。db file scattered read和db file sequential read涉及到I/O操作,可能需要优化表空间的I/...

    如何使用AWR报告来诊断数据库性能问题.docx

    1. **Top 5 Timed Events** - 这是AWR报告中最关键的部分,它列出了导致会话等待时间最长的前五个事件。这些事件通常是性能问题的主要源头,减少这些等待事件可以显著提升系统性能。 2. **SQL Statistics** - AWR...

    How to Use AWR reports to Diagnose Database Performance Issues

    在AWR报告中,"Top 5 Timed Events"部分列出了最消耗时间的五种事件,这是识别性能问题的起点。这些事件可能包括CPU时间、I/O等待、网络延迟等。例如,如果“CPU time events”高居榜首,可能表明数据库在处理计算...

    AWR手册_v1.0.pdf

    AWR报告通常包括诸如“Top 5 Timed Events”(前五个耗时最多的事件)这样的部分,这对于快速识别可能导致性能问题的特定操作或事件非常有帮助。 总体而言,AWR在Oracle数据库性能调优中起到了至关重要的作用。它...

    Oracle 数据库性能优化

    Statspack是Oracle提供的一个免费工具,可以帮助我们收集数据库性能信息,并生成报告。具体建议如下: - 定期捕获快照,以便比较不同时间点的性能差异。 - 分析等待事件,找出性能瓶颈所在。 - 关注系统和会话级别的...

    数据库性能分析报告.doc

    - **TOP 5 Timed Events**:列出耗时最多的5个事件,这些可能是性能瓶颈,通过优化相关SQL语句或数据库设置可以改善。 - **TOP 5 SQL(物理读)**:这些SQL语句执行时涉及了大量的物理读取,可能需要优化索引,...

Global site tag (gtag.js) - Google Analytics