zoukankan      html  css  js  c++  java
  • latch介绍

    latch是一种锁,用来实现对Oracle所有共享数据结构的串行化访问。共享池就是这样一个例子,

    这是系统全局区中一个庞大的共享数据结构,Oracle正是在这里存储已解析,已编译的SQL。

    修改这个共享内存结构时,必须注意一次只允许一个进程访问。

    (如果两个进程或线程试图同时更新内存中的相同的数据结构,这会很槽糕,会导致大量数据被破坏.)


    所以,Oracle采用了一种lacth机制,这是一种完成串行化访问的轻量级锁定方法。

    不要被"轻量级"这个词蒙住了,作为串行化设备,latch一次只允许访问一个进程。latch在硬解析实现中大量使用,

    实际上,这也是latch最常见的方法。共享池的latch和库缓存的latch都是不折不扣的latch,它们成为

    人们频繁争抢的目标。这说明,试图同时硬解析语句的用户越多,性能就会随时间变得越差。


    人们执行的硬解析越多,对共享池的latch争用就越厉害,等待的队列越长,等待的时间也就越久。

    硬解析更重要的因素是库缓存所用的latch机制,硬解析一个查询时,数据库会更长时间地

    占用一种低级的串行化设备,称为latch.

    这种latch用来保护Oracle共享内存中的数据结构不会同时被两个进程修改,而且如果有人正在修改数据结构,

    则不允许另外的人再来读取。对这些数据结构加latch的时间越长,越频繁,排队等待latch的进程就越多,

    等待队列也越长。

  • 相关阅读:
    Ajax调用 打不开新窗口
    杂记3
    todo WebClient学习
    Repeater 嵌套
    动态生成数个gridview Button得到隐藏ID列的值
    SQL 查询间隔时间大于60s的所有数据
    Apache DbUtils
    一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)
    一步步学Mybatis-怎么样实现动态SQL查询(6)
    一步步学Mybatis-实现简单的分页效果逻辑 (5)
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/3797933.html
Copyright © 2011-2022 走看看