`

latch相关视图整理(原创)

 
阅读更多

V$LATCH

V$LATCH视图在选取X$KSLLT记录时,进行了Group By及SUM运算,从而得出了一个汇总信息,保存了自实例启动后各类栓锁的统计信息。常用于当v$session_wait中发现栓锁竞争时鉴别SGA区中问题所在区域。

v$latch表的每一行包括了对不同类型latch的统计,每一列反映了不同类型的latch请求的活动情况。不同类型的latch请求之间的区别在于,当latch不可立即获得时,请求进程是否继续进行。按此分类,latch请求的类型可分为两类:willing-to-wait和immediate。

Willing-to-wait:是指如果所请求的latch不能立即得到,请求进程将等待一很短的时间后再次发出请求。进程一直重复此过程直到得到latch。 

Immediate:是指如果所请求的latch不能立即得到,请求进程就不再等待,而是继续执行下去。

V$LATCH中的常用列:

NAME:latch名称

IMMEDIATE_GETS:以Immediate模式latch请求数

IMMEDIATE_MISSES:IMMEDIATE_GETS的失败数

GETS:以Willing to wait请求模式latch的请求数

MISSES:GETS that did not obtain the latch on first try,Gets 不成功次数

SPIN_GETS:GETS that got the latch within SPIN_GET tries and did not have to sleep 第一次尝试失败,但在以后的轮次中成功

SLEEP1-SLEEP3: GETS that succeeded only after sleeping one to three times
SLEEP4: GETS that only succeeded after sleeping four or more times

WAIT_TIME: Elapsed time spent waiting for this latch ,花费在等待latch的时间
MISSES_WAITLIST: Number of latch misses on the associated wait list latch
SLEEPS_WAITLIST: Number of sleeps while trying to acquire the associated wait list latch
WAIT_TIME_WAITLIST: Wait time for the associated wait list latch

关于latch的统计信息,主要关注以下几部分

misses/gets的比率是多少

获自spinning的misses的百分比是多少

latch请求了多少次

latch休眠了多少次

latch有40余种,但作为DBA关心的主要应有以下几种: 

Cache buffers chains latch:当用户进程搜索SGA寻找database cache buffers时需要使用此latch。

Cache buffers LRU chain latch:当用户进程要搜索buffer cache中包括所有 dirty blocks的LRU (least recently used) 链时使用该种latch。 

Redo log buffer latch:这种latch控制redo log buffer中每条redo entries的空间分配。 

Row cache objects latch:当用户进程访问缓存的数据字典数值时,将使用Row cache objects latch。

V$LATCH_CHILDREN

V$LATCH_CHILDREN是具体每个子LATCH的统计,V$LATCH是每一种LATCH的统计,前者比后者多了一个CHILD#,相同的LATCH#表示同种LATCH,ADDR是子LATCH的地址。V$LATCH_CHILDREN视图和v$Latch视图的差别与v$sql和v$sqlarea的区别相似并不进行汇总运算,所以也就显示了子Latch的相关信息。所谓子Latch就是library cache在系统中包含了多少个具体的物理数量的library cache,他们的分配原则是这样的。v$latch_children内容的条数一般都是v$latch cpu+1倍,例如:从v$latch查询出有1个library cache latches,系统cpu个数为2,则v$latch_children中library cache latches的子latch个数应该为3。

v$latch_children除了比v$latch多了child#其他列都一样,这里不再赘述。
V$LATCHHOLDER
通过v$latchholder可以查看当前持有latch的会话和进程。由于LATCH的等待时间都很短,该视图多用于查看长时间等待LATCH的SESSION
PID:进程标识,用于和v$process关联
SID: 会话标识,用于和V$SESSION关联
LADDR: Latch address  V$LATCH_CHILDRN   
NAME: Name of the latch being held V$LATCH / V$LATCHNAME / V$LATCH_CHILDRN
GETS:NUMBER Number of times that the latch was obtained in either wait mode or no-wait mode

V$LATCHNAME

显示了v$latch中latch的名称,和v$latch中的信息一一对应

LATCH#:Latch number
NAME:Latch name
HASH:Latch hash

常用SQL
查看持有latch的sql信息和会话信息
SELECT s.sql_hash_value,s.sql_id,s.sid l.name
  FROM V$SESSION s, V$LATCHHOLDER l
WHERE s.sid = l.sid;

根据latch名称显示对latch的统计信息
select c.name,a.addr,a.gets,a.misses,a.sleeps,
a.immediate_gets,a.immediate_misses,b.pid
from v$latch a, v$latchholder b, v$latchname c
where a.addr = b.laddr(+) and a.latch# = c.latch#
and c.name like '&latch_name%' order by a.latch#;

# 查看latch的命中率

SQL>SELECT name, gets, misses, sleeps,
      immediate_gets, immediate_misses
     FROM v$latch
   WHERE name = 'cache buffers chains';

# 如果在Top 5中发现latch free热点块事件时,可以从V$latch_children中查询具体的子Latch信息
SELECT *
  FROM (SELECT   addr, child#, gets, misses, sleeps, immediate_gets igets,
                immediate_misses imiss, spin_gets sgets
            FROM v$latch_children
           WHERE NAME = 'cache buffers chains'
        ORDER BY sleeps DESC)
 WHERE ROWNUM < 11;


参考至:http://www.itpub.net/thread-1574165-1-1.html

             http://blog.163.com/wghbeyond@126/blog/static/351661812010619073376/

             http://grassbell.itpub.net/post/26/1458

             http://www.poluoluo.com/jzxy/201010/95955.html

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

0
0
分享到:
评论

相关推荐

    latch相关内容讲解

    ### Latch相关内容讲解 #### 一、什么是Latch? 在Oracle RDBMS中,Latch是一种低级别的序列化机制,主要用于保护SGA(系统全局区)中的共享数据结构。Latch的实现通常依赖于操作系统,并且在某些情况下,进程可能...

    学习动态性能表(11)--v$latch$v$latch_children

    总结来说,理解和监控V$LATCH及其相关视图对于理解Oracle数据库的内部工作原理、优化性能和解决并发问题至关重要。通过定期收集和分析这些数据,数据库管理员能够更好地诊断和解决数据库系统的性能瓶颈。

    Oracle性能诊断之——Latch free

    在Oracle监控视图`V$LATCH`和`V$SESSION_WAIT`中,可以找到与Latch Free相关的详细统计信息,包括但不限于`immediate_misses`、`spin_gets`、`misses`和`sleep`等字段,它们分别记录了会话在获取Latch过程中的不同...

    Latch up测试标准

    "Latch up测试标准" Latch up测试标准是JEDEC(Joint Electron Device Engineering Council)制定的一个工业标准,旨在确保半导体器件的可靠性和安全性。Latch up是一种电流泄露现象,当半导体器件在高温、高湿或...

    Oracle中的Latch和Lock.pdf

    Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在...在实际操作中,可以利用Oracle提供的相关视图(如V$LOCK、V$LATCH等)和SQL语句来监控和分析Latch和Lock的状态,以更好地理解和优化数据库的并发行为。

    oracle Library cache latch 竞争的解决

    这里通过关联`v$latch`和`v$latch_holder`视图,可以找出当前持有`Library Cache Latch`的进程ID及其相关信息。 #### 确定等待者数量 要了解有多少个会话正在等待`Library Cache Latch`,可以执行以下查询: ```...

    oracle Latch free等待事件

    1. **分析等待事件**:使用`v$session_wait`视图来识别哪些会话正在等待"Latch Free"。进一步查看`v$waitstat`以获取等待的总时间。 2. **检查SQL语句**:找出产生等待的SQL语句,分析其执行计划,看看是否存在资源...

    Latch type&滞回比较器

    ### Latch Type与滞回比较器详解 #### Latch Type结构概述 在高速信号处理领域,比较器的设计至关重要。为了满足更高的速度需求,除了通过增加电路中的工作电流来提升响应速度这一传统方法之外,另一种有效手段是...

    Latch up 的原理分析

    "Latch up 的原理分析" Latch up 是一种常见的集成电路故障,发生在 CMOS 芯片中,是由于寄生PNP和NPN双极性BJT之间的相互影响而产生的一低阻抗通路。Latch up 的出现可能会使 VDD 和 GND 之间产生大电流,导致芯片...

    Oracle等待事件latch解析

    5. **v$event_name**:通过查询这个视图,我们可以了解到与latch相关的等待事件的详细定义。 ```sql SELECT event#, event_id, name, parameter1, parameter2, parameter3, wait_class_id, wait_class#, wait_...

    一本关于CMOS Latchup的书,内容详细

    Voldman所著的一本专业书籍,该书详细介绍了CMOS技术中的Latchup现象及其相关解决方案。Latchup是集成电路设计与制造过程中一个非常重要的问题,特别是在CMOS技术中更为常见。本书于2007年出版,为读者提供了深入浅...

    oracle_latch

    这可能包括监控V$SGASTAT视图以了解内存使用情况,调整Shared Pool大小,或者根据需要调整_latch参数以优化并发访问。 总之,Oracle Latch是数据库性能调优的关键要素之一,特别是在处理高并发和复杂查询的环境中。...

    fpga中latch简介

    ### FPGA中Latch简介 #### 一、什么是Latch? 在FPGA设计中,Latch(锁存器)是一种在异步时序电路系统中使用的存储单元,它对输入信号的电平敏感,用于存储信息。通常情况下,一个锁存器能够存储1比特的信息。...

    Latch和Lock的区别

    在Oracle数据库系统中,了解和区分Latch(锁存器)和Lock(锁)是非常重要的,因为它们都是数据库并发控制的关键机制,确保数据的一致性和完整性。以下是对这两个概念的详细解释: 1. Latch(锁存器) - 目的:...

    几个常用视图的说明 常用的视图和表

    例如,对于与latch相关的等待事件,可以通过`p2`字段关联到`v$latch`视图来进一步分析问题。 ### ALL_USERS 和 USER_USERS `ALL_USERS`和`USER_USERS`分别提供了系统中所有用户的列表和当前用户的详细信息。这些...

    Resolving_Oracle_Latch_Contention.rar_latch contention_oracle

    1. 使用V$SESSION_WAIT视图:查看等待事件,如果看到“LATCHFREE”、“enqueue”或特定的Latch类型的等待,可能是Latch Contention的信号。 2. 分析AWR报告:通过分析平均和最大Latch等待时间,可以找出问题的严重...

    芯片latchup原理总结

    《芯片LATCHUP原理详解及防范措施》 LATCHUP,又称闩锁效应,是集成电路设计中一个重要的问题,尤其对于CMOS工艺的芯片来说,它可能导致芯片功能失效甚至损坏。本文将深入探讨LATCHUP的产生原理以及如何有效地防止...

    Latch_Lock_And_Mutex_Contention_Troubleshooting

    标题与描述:“Latch_Lock_And_Mutex_Contention_Troubleshooting” 知识点详述: ### 1. Latch机制概述 Latch是Oracle数据库中用于管理内存结构并发访问的一种低级机制,主要用于保护短暂访问的内存结构,如缓存...

    Latch Free、Library cache伪游标(pseudo cursor)之间的那些事

    这个视图记录了与latch相关的争用和睡眠信息。当进程无法获取某个latch时,就会记录下sleep_count,而wtr_slp_count则记录了进程在请求某个latch时的等待次数。通过查询发现,kglpnc:child和kglupc:child这两个函数...

Global site tag (gtag.js) - Google Analytics