监控oracle的等待事件
选择事件,
sum(decode(wait_Time,0,0,1))& quot;上一页& quot,
sum(decode(wait_Time,0,1,0))& quot;货币& quot,
count(*)& quot;Tot & quot
从v$session_Wait
按事件分组
按4排序;
1等待事件概述
Oracle的等待事件是衡量Oracle运行状态的重要依据和指标。
等待事件的概念是在Oracle7.0.1.2中引入的,大约有100个等待事件。在Oracle 8.0中,这个数字增加到大约150,在Oracle8i中增加到200,在Oracle9i中增加到360。
等待事件主要有两种类型,即空空闲等待事件和非空闲等待事件。
空 Idle waiting事件表示Oracle正在等待某种工作,例如,在使用sqlplus登录之后,但是没有发出进一步的命令。此时,会话处于SQL*Net message from/to client的状态,等待用户发出命令。在对数据库进行诊断和优化时,我们不必过多关注这部分事件。非空空闲等待事件是专门针对Oracle的活动,是指数据库任务或应用程序运行过程中的等待。这些等待事件是我们在调整数据库时应该注意和研究的。
2 oracle等待事件类型
每个等待事件属于某个类别,下面给出每个类别的描述。
类别:管理
类等待事件是由DBA的管理命令引起的,这些命令要求用户等待,比如重建索引。
应用程序类别:
这种等待事件是由用户应用程序的代码引起的(比如锁等待)。
类别:集群
这种等待事件与实际应用集群RAC的资源有关。(例如:gc cr块忙等待事件)。
提交类:提交
这种等待事件只包含一种等待事件——执行commit命令后,等待重做日志写确认(即日志文件同步)。
类别:并发
这种等待事件是由内部数据库资源(如闩锁)引起的。
类别:配置
这种等待事件是由数据库或实例的不正确配置引起的,例如重做日志文件太小、共享池大小等。
空空闲类:空闲
这种等待事件意味着会话处于非活动状态,正在等待工作。例如,来自客户端的sql * net消息。
类别:网络
等待与网络环境相关的事件,如sql* net更多数据到dblink。
其他的
这种等待事件通常很少发生。
类别:调度程序
与资源管理器相关的等待(例如,“resmgr:成为活动的”)
系统输入输出的类别:系统输入输出
这种等待事件的传递是由后台进程的I/O操作引起的,例如DBWR等待、db文件并行写入。
用户输入输出类:用户输入输出。
这种等待事件通常是由用户I/O操作引起的,例如数据库文件顺序读取。
3等待事件的详细描述
1、db文件分散读取(DB文件分散读取)
这种情况通常与全表扫描有关。当数据库进行全表扫描时,由于性能原因,数据将被分散并读入缓冲区缓存。如果这个等待事件很重要,可以考虑检查相应的表是否已经创建了合适的索引。
但是,这种等待事件并不一定意味着低性能。在某些情况下,oracle会主动使用全表扫描代替索引扫描来提高性能,这与访问的数据量有关。在CBO的领导下,甲骨文会做出更明智的选择,而在RBO的领导下,甲骨文更喜欢使用索引。
由于整表扫描进内存的数据块放在LRU链表的冷端,这些数据块可能会在短时间内被替换出物理内存。为了避免重复的物理IO,您可以选择将频繁访问的较小数据表缓存到内存中。
当这个等待时间比较显著时,可以结合v$session_longops的动态性能视图进行诊断,该视图记录了长时间运行的事务(运行时间超过6秒),其中很多可能是全表扫描操作。
圆柱
数据类型
描述
(同suddenionosphericdisturbance)电离层的突然骚扰
数字
会话标识符
序列号
数字
会话序列号
OPNAME
VARCHAR2(64)
操作的简要描述
目标
VARCHAR2(64)
对其执行操作的对象
目标_DESC
VARCHAR2(32)
目标的描述
水底测音装置
数字
到目前为止完成的工作单位
总工作量
数字
工作的总单位
单位
VARCHAR2(32)
测量单位
开始时间
日期
操作的开始时间
上次更新时间
日期
上次更新统计数据的时间
剩余时间
数字
完成操作的估计剩余时间(秒)
经过时间_秒
数字
从操作开始经过的秒数
语境
数字
语境
消息
VARCHAR2(512)
统计摘要消息
用户名
VARCHAR2(30)
执行操作的用户的用户ID
SQL_ADDRESS
原始(4)
与SQL_HASH_VALUE列的值一起使用,以标识与操作关联的SQL语句
SQL散列值
numeral 数字
与SQL_ADDRESS列的值一起使用,以标识与操作关联的SQL语句
QCSID
数字
并行协调器的会话标识符
本文链接:http://www.123down.cn/gonglue/227409.html