latch free

latch free 等待事件:

latch: cache buffers chains 这个等待事件其实还有另外一个重要的原因,那么就是逻辑读太高,SQL执行计划走错了导致的。


   当进程想要获取锁存器而此时该锁存器整被其他进程持有时产生latch free(锁存器空闲)等待事件,类似于排队,Oracle

使用锁存器来保护数据结构。一次只能在一个进程来获得锁存器后修改或检查数据结构。其他需要访问该数据结构的进程必须等到

它们获得锁存器后。不同于排队的是,请求锁存器的进程不需要在对列中等待。如果获取锁存器的请求失败,则进程仅仅等待一小段

时间就可以再次请求锁存器。这一小段等待时间称为"自旋"(spin)。如果在一次或多次自旋重复(spin itertions)之后没有获取锁存器,

进程就休眠一小段时间,然后再次尝试获取锁存器,接下来休眠更长一段时间直到获得锁存器。

 


最常见的latch: cache buffer chains,library cache,shared pool


library cache pin(库高速缓存pin)等待事件与库高速缓存并发性有关,当会话尝试在库高速缓存中钉住对象以修改或检查


该对象时产生该事件,会话必须获取插针(pin)以确保此时对象没有被其他会话更新,当会话正在编译或分析PL/SQL过程和视图时,Oracle提交该事件。

 


library cache lock(库高速缓存锁)等待事件也与高速缓存并发性有关,当会话尝试在库

高速缓存中修改或检查给定对象时产生该事件。会话必须获取对象句柄的库高速缓存锁,以阻止其他会话


同时访问它,或维持一段较长事件的依赖性,或在库高速缓存中给对象定位。

 

 

 

 

 

转载于:https://www.cnblogs.com/zhaoyangjian724/p/3798052.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值