Latch Hit %
原创 2017-06-12 Oracle 宅必备
从这期开始讲解awr报告的部分,上期说的是awr整体的部分,今天开始对里面的细节说起
这期针对Instance Efficiency Percentages 部分做说明
理论上说上述比例应接近100%
Latch Hit %
该指标指的是latch不需要等待即可获取的比例
计算公式为:
SELECT (1 - (Sum(misses) / Sum(gets))) * 100 FROM v$latch;
v$latch视图
可以从v$latch视图获取相关信息,下图为几个重要栏位的讲解
- GETS:以 willing-to-wait 模式请求latch的次数
- MISSES:以 willing-to-wait 模式请求latch但是需要等待的次数
- SLEEPS:以 willing-to-wait 模式请求latch需要等待并且超时的次数
- IMMEDIATE_GETS:以no-wait模式请求latch的次数
- IMMEDIATE_MISSES:以no-wait模式请求latch且失败(miss)的次数
- SPIN_GETS:以willing-to-wait模式请求latch需要等待,但是在spin中获得的次数
latch获取过程
latch是Oracle的一种轻量级的锁,用于保护共享内存,如确保一个数据块同一时间只能被一个session访问等等
- Cache Buffer Chains
- Redo Copy Latch
- .....
latch获取有2种方式
- willing-to-wait
- no-wait
willing-to-wait模式
大部分latch采用如下模式,若第一次未取得latch时采用等待的方法,具体如下图:
no-wait模式
少部分latch采用这种模式,当第一次获取不到该latch时就不进行等待,直接进入sleep状态
如何处理
如此指标低于90%则说明latch等待严重,可查看awr报告的等待事件部分
如上图表明library cache存在冲突,具体如何调优latch的部分不在此次做解释