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;

latch相关视图整理的更多相关文章

  1. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  2. 转:基于IOS上MDM技术相关资料整理及汇总

    一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...

  3. EasyUI相关知识点整理

    EasyUI相关知识整理 EasyUI是一种基于jQuery.Angular..Vue和React的用户界面插件集合.easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能.也就 ...

  4. 基于IOS上MDM技术相关资料整理及汇总

    (转自:http://www.mbaike.net/special/1542.html) 一.MDM相关知识:MDM (Mobile Device Management ),即移动设备管理.在21世纪 ...

  5. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  6. [Cxf] cxf 相关知识整理

    ① 请求方式为GET @GET @Path(value = "/userAddressManage") @Produces( { MediaType.APPLICATION_JSO ...

  7. DBGrid相关技术整理

    DBGrid相关技术整理: 注:对于DBGrid相关属性.方法的学习融入到技术整理过程中 一,多选 设置属性: Options->dgMultiSelect = True; ->dgRow ...

  8. libmodbus相关资料整理

    /****************************************************************************** * libmodbus相关资料整理 * ...

  9. Oracle用户角色权限相关视图

    常用相关视图概述 DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限 SESSION_PRIVS: 当前用户所拥有的全部权限 ROLE ...

随机推荐

  1. 最近学习java时的记录

    1.java 的变量一共分为三种,类变量,局部变量,成员变量 类变量就是 加static修饰符的变量 2.java 的修饰符可分为两大类,一 可访问修饰符 protected private publ ...

  2. [图形学] Chp9 三维几何变换--栈处理函数与矩阵管理函数的区别

    矩阵管理函数:glLoadIdentity()是把当前活动矩阵设置为单位矩阵. 栈处理函数:glPushMatrix()是将当前活动的变换矩阵复制一份,压入栈顶:glPopMatrix()是破坏当前活 ...

  3. webgl自学笔记——光照

    在Webgl中我们使用顶点着色器和片元着色器来为我们的场景创建光照模型.着色器允许我们使用数学模型来控制如何照亮我们的场景. 最好有线性代数的相关知识. 本章中: 光源.法线.材料 光照和着色的区别 ...

  4. 使用 QDockWidget嵌套布局来实现复杂界面,方便用户可以自定义界面,自由组合窗口

    http://www.cnblogs.com/findumars/p/5436533.html

  5. JS封闭函数、闭包、内置对象

    一.变量作用域 变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量 1.全局变量:在函数之外定义的变量,为整个页面公用,函数的内部外部都可以访问. 2.局部变量:在函数 ...

  6. classloader加载的双亲委托模式

    要深入了解ClassLoader,首先就要知道ClassLoader是用来干什么的,顾名思义,它就是用来加载Class文件到JVM,以供程序使用 的.我们知道,java程序可以动态加载类定义,而这个动 ...

  7. anaconda 下多版本Python 安装说明

    网上针对多版本的Python兼容安装的文章逐渐增多,都是大家在实践中总结的经验.本人的安装经过几次的反复实验还是觉得其中一种更为方便. 有人的安装方法是: 1. 先安装一个版本的python(一般先安 ...

  8. 实验楼 1. k-近邻算法实现手写数字识别系统--《机器学习实战 》

    首先看看一些关键词:K-NN算法,训练集,测试集,特征(空间),标签 举实验楼中的样例,通俗的讲讲K-NN算法:电影有两个分类(标签)-动作片-爱情片.两个特征--打斗场面--亲吻画面. 将那些数字和 ...

  9. Redis各种数据结构性能数据对比和性能优化实践

    很对不起大家,又是一篇乱序的文章,但是满满的干货,来源于实践,相信大家会有所收获.里面穿插一些感悟和生活故事,可以忽略不看.不过听大家普遍的反馈说这是其中最喜欢看的部分,好吧,就当学习之后轻松一下. ...

  10. 前端程序员经常忽视的一个JavaScript面试题

    在网上找到一个有关JavaScript的面试题,特整理如下: function Foo() { getName = function () { alert (1); }; return this; } ...