没有合适的资源?快使用搜索试试~ 我知道了~
Oracle常见的33个等待事件.doc
需积分: 32 4 下载量 4 浏览量
2021-06-11
20:05:25
上传
评论
收藏 209KB DOC 举报
温馨提示
试读
12页
Oracle常见的33个等待事件
资源详情
资源评论
资源推荐
一. 等待事件的相关知识:
等待事件主要可以分为两类,即空闲等待事件和非空闲等待事件。
空闲等待事件指 正等待某种工作,在诊断和优化数据库时,不用过多注意这部分事件。
非空闲等待事件专门针对 的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库时需要
关注与研究的。
在 中的等待事件有 个, 中等待事件 个。 可以通过 视图来查看等待事件的相关信
息。
查看 视图的字段结构:
!"#$
名称 是否为空%类型
&'()*+,
&')*+,
-*&-,./-,0
1-,-*',&-,./-,0
1-,-*',&-,./-,0
1-,-*',2&-,./-,0
3-'.-)*+,
3-'.-()*+,
3-'.-&-,./-,0
2查看等待事件总数:
!#45674$
.)'6
0查看等待事件分类情况:
/* Formatted on 2010/8/11 16:08:55 (QP5 v5.115.810.9015) */
.'89##(:
89##9":
89##:
.)'6-;45;
<,*
=,)1+>89##(:89##9":89##
,,+>89##($
3-'.-(3-'.-3-'.-45
?2?2@
00A2-BB994
2?AA0.4C5940
20A02-"99#9A0
02AA.45D2
A2202.49
2?"?0
A22A84E2A
0A?)#F0A
?02D#F2
2?220@"5
2222.5#A
00?A 559?
A相关的几个视图:
&: 代表数据库活动的开始,视为源起。
&3-': 视图用以实时记录活动 的等待情况,是当前信息。
&3-'/',>: 是对 &3-' 的简单增强,记录活动 的最近 次等待。
& 'G': 当数据库出现瓶颈时,通常可以从 &3-' 找到那些正在等待资源的 ,通过 的
,联合 & 和 & 'G' 视图就可以捕获这些 正在执行的 语句。
&-.'&/',>H是 -/ 的核心,用以记录活动 的历史等待信息,每秒采样一次,这部分内容记录在
内存中,期望值是记录一个小时的内容。
3,/(-.'&/',>H是 &-.'&/',> 在 -3, 的存储地。
&-.'&/',>H中的信息会被定期每小时一次的刷新到负载库中,并缺省保留一个星期用于分析。
+-/'-.'&/',>H视图是 3,/(-.'&/',> 视图和其他几个视图的联合展现,通常通
过这个视图进行历史数据的访问。
&>'*&'由于 & 记录的是动态信息,和 的生命周期相关,而并不记录历史信息,所以 ,-.
提供视图 &>'*&' 来记录数据库自启动以来所有等待事件的汇总信息。通过这个视图,用户可以迅速获得数据库运行
的总体概况。
二. 个常见的等待事件
从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个 +5I(数据块),但是导致这个现象的原因却有很多种。常见
的两种是:
当一个会话视图修改一个数据块,但这个数据块正在被另一个会话修改时。
当一个会话需要读取一个数据块,但这个数据块正在被另一个会话读取到内存中时。
操作的最小单位是块(+4E),即使你要修改一条记录,也需要对这条记录所在的这个数据块做操作。 当你对这个数
据块做修改时,其他的会话将被阻止对这个数据块上的数据做修改(即使其他用户修改的不是当前用户修改的数据),但是可以
以一致性的方式读取这个数据块(745"4)。当前的用户修改完这个数据块后,将会立即释放掉加在这个数据块上的排他锁,
这样另一个会话就可以继续修改它。 修改操作是一个非常短暂的时间,这种加锁的机制我们叫 @。
当一个会话修改一个数据块时,是按照以下步骤来完成的:
以排他的方式获得这个数据块(@)
修改这个数据块。
释放 @。
+5IJ5#D89# 等待事件常见于数据库中存在的热快的时候,当多个用户频繁地读取或者修改同样的数据块时,这个等待事
件就会产生。 如果等待的时间很长,我们在 -3, 或者 ##BE报告中就可以看到。
这个等待事件有三个参数。 查看有几个参数我们可以用以下 H
!#:B:B:B2748@KLJ5IJ5#D
89#L$
-*1-,-*',1-,-*',1-,-*',2
J5IJ5#D89#C(J4E(##(
在下面的示例中,查询的方法和这个一样,所以其他事件对参数的查询将不做过多的说明。
<9(H等待访问数据块所在的文件 9" 号。
+4E#: 等待访问的数据块号。
: 在 之前,这个值表示一个等待时间的原因, 之后则表示等待事件的类别。
内存中数据块的存放位置是记录在一个 @#@ 列表(@J5I@9#)当中的。 当一个会话需要访问某个数据块时,它首
先要搜索这个 @#@列表,从列表中获得数据块的地址,然后通过这个地址去访问需要的数据块,这个列表 会使用一个
@ 来保护它的完整性。 当一个会话需要访问这个列表时,需要获取一个 @,只有这样,才能保证这个列表在这个会话的
浏览当中不会发生变化。
产生 J5I@ 的等待事件的主要原因是:
+5I@9# 太长,导致会话搜索这个列表花费的时间太长,使其他的会话处于等待状态。
同样的数据块被频繁访问,就是我们通常说的热快问题。
产生 J5I@9# 太长,我们可以使用多个 J5IB44 的方式来创建更多的 J5I@9#,或者使用参数
++.M,)-'./ 来增加 @ 的数量,以便于更多的会话可以获得 @,这两种方法可以同时使用。
这个等待事件有两个参数:
: 会话申请的 @ 在 =- 中的虚拟地址,通过以下的 语句可以根据这个地址找到它对应的 @ 名称:
#674@:@J8@
""K@""这里的 @""是你从等待事件中看到的值
"@(KJ@($
: J5I@9#@#@列表中的索引值,当这个参数的值等于 #NIII7 时,说明当前的会话正在等待一个 ,)
@。
!
当数据库中有多个控制文件的拷贝时,需要保证信息同步地写到各个控制文件当中,这是一个并行的物理操作过程,因为
称为控制文件并行写,当发生这样的操作时,就会产生 44CB89 等待事件。
控制文件频繁写入的原因很多,比如:
日志切换太过频繁,导致控制文件信息相应地需要频繁更新。
系统 F出现瓶颈,导致所有 F 出现等待。
当系统出现日志切换过于频繁的情形时,可以考虑适当地增大日志文件的大小来降低日志切换频率。
当系统出现大量的 44CB89等待事件时,可以通过比如降低控制文件的拷贝数量,将控制文件的拷贝存放在
不同的物理磁盘上的方式来缓解 F争用。
这个等待事件包含三个参数:
": 要写入的控制文件个数。
#: 写入控制文件的数据块数目。
$%:写入控制请求的 F次数。
& %
当数据库需要读取控制文件上的信息时,会出现这个等待事件,因为控制文件的信息是顺序写的,所以读取的时候也是顺序的,
因此称为控制文件顺序读,它经常发生在以下情况:
备份控制文件
,-.环境下不同实例之间控制文件的信息共享
读取控制文件的文件头信息
读取控制文件其他信息
剩余11页未读,继续阅读
luashin
- 粉丝: 7
- 资源: 141
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0