暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Latch free等待事件.doc
212
19页
1次
2022-10-09
50墨值下载
Latch free
等待事件
Latch free
p1
latch
p2
latch
p3
oracle10g
起,
latch free
不再包含所有
latch
等待,有
latch
等待可能表现为单独的
等待事件,这个后面有提到一些这样的等待事件,一般情况下我们还是统称为
latch free
待事件。在处理
latch free
等待事件时,需要注意以下几点:
Latch
只是来保
sga
中的存结。对库中对象保护使用
lock
而不
latch
Oracle sga
latch
sga
访
问而损坏。
等待
latch
的是
oracle
会话。不同的
latch
类型会导致会话采取不同的策略。
oracle9i
9i
latch free
latch
oracle10g
起,
latch
被分成不同的种类,并且某些
latch
表现为独立的等待事件。
什么是
latch
Latch
是一锁机。你已经
latch
的概和用,虽能你己并有意
识到。在日常的工作和交流中,
latch
都经常出现,比如你锁门时,需要获得一
latch
;或
者你坐到车里,系上安全带,你就把自己放在一个
latch
的保护中了。
oracle
中,
latch
是一种轻量级的锁。一般来说,
latch
由三种内存元素组成:
pid
(进
id
),内存地址和内存长度。
Latch
保证对共享数据结构的排它性访问,以此来保证内存
结构的完整性不受到损坏。多个会话同时修改或者检视
(inspect)sga
中同一个内存结构
必须串行化访问以保证
sga
中数据结构的完整性。
Latch
lock
的异同
Latch
lock
有许多不同之处。下表列出了
latch
lock
之间的比较结果。
Latch Lock
目的
访
oracle9i
cache buffers chain
latch
可以允许只读共享访问)
两个目的:如果锁模式是兼容的,
许多个进程共享相同的资源;如果
模型是不兼容的,保证对共享资源
排它性访问。
适用场景 只能应用于
sga
中的数据结构,保护内存
Latch
关。
保护数据库对象,诸如表,数据块
状态对象等。由应用程序驱动,控
访
问。
Lock
是事务性的。
获取方式 两种模式:
willing-to-wait
no-wait
null, row share, row
exclusive, share, share row exclusive
exclusive
范围
见――
latch
是实例级别的
信息保存在数据库中,并且该数据
的所有实例都可见
lock
是数据库
级的
复杂度 使
test-and-set,
compare-and-swap
或其简单
cpu
指令
cpu
latch
的。
context siwtch
使用一系列指令实现。
量级的。
持续事件 短暂常是微妙级的) 常在整个事务中都有。
机制
latch
情况:
latch wait list latch
需要排)。
一个进程获取
lock
失败,它的请求
会进一个列,除非
nowait
Latch
的实现方式不会产生死锁(不排
Lock
锁发时会产生相应的跟踪文件。
Latch
家族
Latch
latch
latch
latch
latch
latch
oracle
latch
V$latch_parent
v$latch_children
latch
latch
的统
v$latch
latch
latch
其相
latch
信息。
Latch
的获取
latch
willing-to-wait
no_wait
No-wait
latch
使用。通过
no-wait
模式获
latch
的统信息
immediate_gets
immediate_misses
中,些列
v$latch
v$latch_parent
v$latch_children
都存一般说,
no-wait
模式一次取一些有
latch
latch
比如
redo copy
时使用。如果一个进程
获取
latch
中的一个使
no-wait
模式问下。只采用
no-wait
模式试图获取所有的
latch
失败以后,而采用
willing-to-wait
模式。
willing-to-wait
式获
latch
信息
gets
misses
中。每当
程用
willing-to-wait
模式获取一个
latch
时,
gets
都会增加
latch
latch
latch
护的,进程会
latch
latch
程发异常时,
pmon
进程够清理该进程有的
latch
如果
latch
时,
latch
不可,进就会
cpu
中等小段
(spin)
然后
请求
latch
。如
latch
不可用,
(spin
时间然后
)
会一直重复。
_spin_count
2000
_spin_count
latch
spin_gets
misses
v$session_wait
latch free
事件
cpu
转入间后面的
到获得
latch
。在成获得
latch
后,
sleep
列得统信息。
由于进程只有在获
latch
latch
得请求,如果某个
latch
的进程发
异常,其他请求该
latch
的进程该办?岂不是要一等待下去?不会的。一个进程请
latch
pmon
latch
pmon
就会理该进程,
latch
latch
0
13
latch
latch
oracle
核代码固定的。
latch
是在实例创建,其级编号从其
latch
继承
使用优先级可以避免死锁。
一个进程请
no-wait
模式的
latch
时,该
latch
优先级编号必须和前已经
latch
优先级编号相同。
个进程请
willing-to-wait
模式
latch
时,
latch
编号必须比它
有的
latch
优先级编号要
等待
latch
长等待
latch
latch
latch
latch
Oracle
进程请求
latch
失败而导致进入睡眠状态,睡眠时间按双指数长,比睡眠时间
of 19
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜