`
zybing
  • 浏览: 456007 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【技术】监控oracle的等待事件

阅读更多

 

来自于: http://blog.csdn.net/47522341/archive/2009/07/22/4370491.aspx

 

监控oracle的等待事件

select event,
       
sum(decode(wait_Time, 001)) "Prev",
       
sum(decode(wait_Time, 010)) "Curr",
       
count(*) "Tot"
  
from v$session_Wait
 
group by event
 
order by 4;

5.1 等待事件概述

Oracle的等待事件是衡量oracle运行状况的重要依据及指标.

等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,Oracle9i中大约有360个等待事件。

主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。

空闲等待事件是指Oracle正等待某种工作,比如用sqlplus登录之后,但没有进一步发出任何命令,此时该session就处于SQL*Net message from/to client等待事件状态,等待用户发出命令,任何的在诊断和优化数据库的时候,我们不用过多注意这部分事件。非空闲等待事件专门针对Oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是我们在调整数据库的时候应该关注与研究的。

5.2  oracle等待事件类型

每一个等待事件都属于某一类下面给出了每一类等待事件的描述.

管理类: administrative

类等待事件是由于DBA的管理命令引起的,这些命令要求用户处于等待状态,比如,重建索引。

应用程序类:

此类等待事件是由于用户应用程序的代码引起的(比如:锁等待).

群集类:Cluster

此类等待事件和真正应用群集RAC的资源有关。(比如:gc cr block busy等待事件).

提交确认类:Commit

此类等待事件只包含一种等待事件--在执行了一个commit命令后,等待一个重做日志写确认(也就是log file sync.

并发类:Concurrency

此类等待事件是由内部数据库资源引起的,比如闩锁。

配置类:Configuration

此类等待事件是由数据库或实例的不当配置造成的,比如,重做日志文件尺寸太小,共享池的大小等。

空闲类:Idle

此类等待事件意味着会话不活跃,等待工作。比如,sql * net messages from client

网络类:Network

和网络环境相关的一些等待事件,比如sql* net more data to dblink

Other

此类等待事件通常比较少见。

调度类:Scheduler

Resource Manager related waits (for example, 'resmgr: become active')

系统I/O类:System I/O

此类等待事件通过是由后台进程的I/O操作引起的,比如DBWR等待,db file paralle write

用户I/O类:User I/O

此类等待事件通常是由用户I/O操作引起的,比如db file sequential read

5.3 等待事件详细描述

1, db file scattered read (DB文件分散读取)

这种情况通常与全表扫描相关当数据库进行全表扫描时基于性能的考虑数据会分散(scattered)读入buffer cache. 如果这个等待事件比较显著可能考虑查看对应的表有没有创建合适的索引.

然而这个等待事件并不一定就意味着性能低下在某些条件下oracle会主动使用全表扫描来替换索引扫描以提高性能这和访问的数据量有关CBOoracle会进行更为智能的选择, RBOoracle更倾向于使用索引.

因为全表扫描到内存的数据块被置于LRU链表的冷端所以这些数据块将可能在较短时间内被置换出物理内存为了避免反复物理IO, 对频繁访问的较小的数据表,可以选择把他们cache到内存中.

当这个等待时间比较显著时可以结合v$session_longops动态性能视图来进行诊断该视图中记录了长时间(运行时间超过6)运行的事务可能很多是全表扫描操作.

Column

Datatype

Description

SID

NUMBER

Session identifier

SERIAL#

NUMBER

Session serial number

OPNAME

VARCHAR2(64)

Brief description of the operation

TARGET

VARCHAR2(64)

The object on which the operation is carried out

TARGET_DESC

VARCHAR2(32)

Description of the target

SOFAR

NUMBER

The units of work done so far

TOTALWORK

NUMBER

The total units of work

UNITS

VARCHAR2(32)

The units of measurement

START_TIME

DATE

The starting time of operation

LAST_UPDATE_TIME

DATE

Time when statistics last updated

TIME_REMAINING

NUMBER

Estimate (in seconds) of time remaining for the operation to complete

ELAPSED_SECONDS

NUMBER

The number of elapsed seconds from the start of operations

CONTEXT

NUMBER

Context

MESSAGE

VARCHAR2(512)

Statistics summary message

USERNAME

VARCHAR2(30)

User ID of the user performing the operation

SQL_ADDRESS

RAW(4)

Used with the value of the SQL_HASH_VALUE column to identify the SQL statement associated with the operation

SQL_HASH_VALUE

NUMER

Used with the value of the SQL_ADDRESS column to identify the SQL statement associated with the operation

QCSID

NUMBER

Session identifier of the parallel coordinator

2, db file sequential read(DB 文件顺序读取)

这一事件通常显示与单个数据块相关的读取操作比如对索引块的读取如果这个等待事件比较显著可能表示在多表连接中表的链接顺序存在问题可能没有正确的使用驱动表或者可能说明不加选择地进行索引.

3, free buffer (释放缓冲区)

这个等待事件表明系统正在等待内存中的可用空间,这说明当前Buffer 中已经没有Free 的内存空间。Free Buffer 等待可能说明DBWR 的写出速度不够,或者磁盘存在严重的竞争,可以需要考虑增加检查点、使用更多的DBWR 进程,或者增加物理磁盘的数量,分散负载,平衡IO

4, buffer busy(缓冲区忙)

该等待事件表示正在等待一个以unshareable方式使用的缓冲区,或者表示当前正在被读入buffer cache。一般来说Buffer Busy Wait不应大于1%。检查缓冲等待统计部分(V$WAITSTAT),看一下等待是否位于段头(Segment Header)。如果是,可以考虑增加自由列表(freelist,对于Oracle8i DMT)或者增加freelist groups(在很多时候这个调整是立竿见影的,在8.1.6之前,这个freelists参数不能动态修改;8.1.6及以后版本,动态修改 feelists需要设置COMPATIBLE至少为8.1.6).

This view lists block contention statistics. This table is only updated when timed statistics are enabled.

Column

Datatype

Description

CLASS

VARCHAR2(18)

Class of the block

COUNT

NUMBER

Number of waits by this OPERATION for this CLASS of block

TIME

NUMBER

Sum of all wait times for all the waits by this OPERATION for this CLASS of block

select * from V$WAITSTAT

CLASS

COUNT

TIME

data block

318671








分享到:
评论

相关推荐

    BLOG_Oracle_lhr_等待事件(1) User IO.pdf

    ### Oracle等待事件详解:User I/O 类型 #### 一、引言与概述 等待事件是Oracle数据库性能诊断的关键组成部分,它提供了关于数据库资源利用情况的深入见解。等待事件可以帮助我们理解应用程序或数据库操作在执行...

    oracle之监控报警

    综上所述,Oracle的监控报警机制涵盖了多种工具和技术,从基础的警报日志到复杂的性能分析工具,再到灵活的邮件报警配置。理解和熟练运用这些功能,对于提升数据库的管理和维护效率至关重要。通过持续监控和适时的...

    Oracle 事件探查器

    - **解析跟踪文件**:Oracle事件探查器读取这些跟踪文件,并将其转换为有用的信息,如执行计划、资源消耗、等待事件等。 - **生成报告**:根据解析结果,探查器可以生成详细的性能报告,包括慢查询分析、锁争用、I...

    监控Oracle数据库.pdf

    本文由郭吉平、张晓勇和王小星撰写,主要介绍了使用一系列命令和shell脚本来监控Oracle数据库的方法,旨在减轻DBA的重复性工作,并为性能调整提供技术支持。 首先,DBA可以通过执行特定命令来监控Oracle数据库的...

    BLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdf

    为了帮助读者更全面地理解Oracle数据库中的等待事件,本文提供了多个相关文章的链接,覆盖了不同类型的等待事件。这些资源对于深入学习Oracle数据库性能调优非常有帮助,具体包括: - **用户I/O类型**:分别介绍了...

    使用动态跟踪技术SystemTap监控Oracle和mysql性能——吕海波@美创科技.zip

    2. **监控Oracle性能**:对于Oracle数据库,SystemTap可以用于监视SQL语句的执行时间、等待事件、I/O操作、锁争用等关键指标。例如,你可以编写SystemTap脚本来记录长时间运行的SQL,从而找出可能的性能问题源头。 ...

    Oracle数据库latch和mutex等待事件全面解析

    ### Oracle数据库Latch与Mutex等待事件全面解析 #### 一、引言:理解Latch与Mutex 在Oracle数据库领域,了解Latch和Mutex等待事件对于优化数据库性能至关重要。这些等待事件通常指向了并发控制机制中的竞争问题,...

    SQLMonitor.rar 监控oracle sql

    "SQLMonitor.rar" 提供了一种解决方案,专为监控Oracle SQL查询而设计,这对于优化数据库性能、排查错误以及确保系统稳定运行是极其有用的。在这个压缩包中,我们主要关注的是如何利用SQLMonitor工具来提升对Oracle ...

    oracle数据执行监控工具(sqldbmon.exe).rar

    本资源“oracle数据执行监控工具(sqldbmon.exe)”是一个专门用于跟踪Oracle客户端数据执行的实用程序,它简化了对数据库操作的洞察过程,特别是对于那些可能不熟悉复杂数据库技术的用户。 `sqldbmon.exe`是一个...

    Oracle技术狂人整理出的文档

    这份"Oracle技术狂人整理出的文档"很可能是由一位深入研究Oracle技术的专业人士精心编撰的,涵盖了Oracle数据库的各个方面,包括但不限于体系结构、安装配置、性能优化、SQL查询、备份恢复、安全性以及故障排查等...

    Oracle性能调优技术内幕

    - **V$system_event**:提供关于系统级别的等待事件信息。 - `Event`: 事件名称。 - `Total_Waits`: 自实例启动以来对某个事件等待的总次数。 - `Total_Timeouts`: 某事件自实例启动以来等待超时的总次数。 - `...

    zabbix_oracle_plugin zabbix oracle数据库监控插件

    - 数据库会话统计(如活跃会话、等待事件) - 表空间使用情况 - SQL执行效率与资源消耗 - 锁和死锁状况 - 日志文件写入速度与重做日志利用率 - 缓存命中率 - 数据库内存池分配与使用情况 通过上述指标的实时监控,...

    Oracle和Linux系统监控

    3. **数据库活动**:监控会话、进程、锁、等待事件等,有助于了解数据库的工作负载和资源分配情况。 4. **数据安全**:监控登录尝试、权限变更和异常访问,确保数据安全。 5. **备份与恢复**:监控备份状态和恢复...

    Oracle 白皮书 ADG 同步复制技术

    - 对于高Log File SYNC等待事件,需要进行深入诊断以找出瓶颈并解决。 6. Data Guard Fast Sync: Fast Sync是Data Guard的一个特性,它允许备用数据库几乎实时地应用重做数据,极大地减少了数据不一致的可能性。...

    oracle statspack 高性能调整技术

    StatsPack是Oracle的一个统计包,它在早期的版本中称为SQL*Plus StatsPack,主要用于收集数据库的运行时统计信息,如执行的SQL语句、会话活动、等待事件等。通过这些数据,DBA可以识别性能瓶颈,优化数据库配置和SQL...

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    OWI是Oracle数据库中用于监控和诊断性能问题的重要工具,通过分析等待事件,帮助DBA(数据库管理员)理解系统资源的瓶颈所在。以下是对书中核心知识点的详细解读: 1. **Oracle Wait Interface (OWI)**:OWI是...

    oracle+statspack+高性能调整技术

    3. **监控等待事件**:等待事件分析可以帮助我们理解数据库等待的主要原因,例如,是否因为磁盘I/O延迟或锁定冲突导致了性能问题。 4. **对比性能变化**:通过对比不同的统计报告,可以了解数据库性能在升级、修改...

    OracleAS性能监控文档

    2. **SQL*Plus**:虽然主要用于SQL查询,但也可以用于获取特定的性能数据,如会话状态、等待事件等。 3. **SNMP监控**:利用简单网络管理协议(SNMP),可以集成到第三方监控系统中,实现跨平台的统一监控。 4. **...

    吕海波 - 调试Oracle二三例:调试技术在日常运维中的应用

    在具体案例中,如果发现大量Cache Buffers Chain Latch等待事件,DBA应当进一步检查问题是否由单一Latch引发,这是通过等待事件的P1参数来确认的。P1参数会给出Latch的地址,如果大多数等待事件都指向同一个地址,则...

Global site tag (gtag.js) - Google Analytics