您的位置:首页 > 数据库 > Oracle

通过案例学调优之--Oracle Latch基础知识

2015-03-31 12:09 375 查看
通过案例学调优之--Oracle Latch基础知识一、什么是 Latch
1.1、 Latch 是一种低级排队(串行)机制,用于保护 SGA 中共享内存结构。
1.2、 Latch 是一种快速的被获取和释放的内存锁,用于防止共享内存结构被多个用户同时
访问。
1.3、 Latch 请求的类型:  willing-to-wait 和 immediate。
1.3.1 对于 willing-to-wait 类型的 latch:
如果一个进程在第一次尝试中没有获得 latch,那么它会等待并且再尝试一次,如果经过_spin_count 次争夺不能获得 latch, 然后该进程转入睡眠状态,睡眠醒来后,按顺序重复以
前的步骤。睡眠的时间会越来越长。
1.3.2 对于immediate类型的latch:
如果该闩不能立即得到的话,那么该进程就不会为获得该 latch 而等待。它将继续执行
另一个操作。
1.3.3 可以通过 v$latch 视图查看 latch 的具体信息,在 v$latch 中:
(以下字段反映了 Willing-to-wait 类型请求)
GETS:成功地以 Willing-to-wait 请求类型请求一个 latch 的次数。
MISSES:初始以 Willing-to-wait 请求类型请求一个 latch 不成功的次数。
SLEEPS:初始以 Willing-to-wait 请求类型请求一个 latch 不成功后,进程等待获取 latch的次数。
(以下字段反映了 Immediate 类型请求)
IMMEDIATE_GETS:以 Immediate 请求类型成功地获得一个 latch 的次数。
IMMEDIATE_MISSES:以 Immediate 请求类型请求一个 latch 不成功的次数。
[code=jfx;toolbar:false">12:27:09 SYS@ prod >desc v$latch
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 ADDR                                                                       RAW(4)
 LATCH#                                                                     NUMBER
 LEVEL#                                                                     NUMBER
 NAME                                                                       VARCHAR2(64)
 HASH                                                                       NUMBER
 GETS                                                                       NUMBER
 MISSES                                                                     NUMBER
 SLEEPS                                                                     NUMBER
 IMMEDIATE_GETS                                                             NUMBER
 IMMEDIATE_MISSES                                                           NUMBER
 WAITERS_WOKEN                                                              NUMBER
 WAITS_HOLDING_LATCH                                                        NUMBER
 SPIN_GETS                                                                  NUMBER
 SLEEP1                                                                     NUMBER
 SLEEP2                                                                     NUMBER
 SLEEP3                                                                     NUMBER
 SLEEP4                                                                     NUMBER
 SLEEP5                                                                     NUMBER
 SLEEP6                                                                     NUMBER
 SLEEP7                                                                     NUMBER
 SLEEP8                                                                     NUMBER
 SLEEP9                                                                     NUMBER
 SLEEP10                                                                    NUMBER
 SLEEP11                                                                    NUMBER
 WAIT_TIME                                                                  NUMBER
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: