zoukankan      html  css  js  c++  java
  • cache buffer 相关的闩锁等待事件(cache buffers lru chain/cache buffers chain)

    cache buffers lru chain
    原因
    高负荷的cache吞吐量,效率差的sql语句(全表扫描,或不正确的index range scans)
    dbwr写出速度太慢,前台进程花费很多时间持有latch查找free buffer。

    cache buffers lru chain保护buffer的链表在cache中,当增加,移除,移动一个buffer从list时,cblc latch必须被获取。
    在SMP(对称多处理)的系统上,oracle自动设置LRU latche数量是cpu个数的一半。
    在有很多处理器的系统里,对cblc latch的争用会影响性能,LRU latch争用可以被通过查询V$LATCH, V$SESSION_EVENT, V$SYSTEM_EVENT等视图识别问题。
    为了避免争用,考虑优化应用,绕过buffer cache对于batch,dss任务,或者重新设计应用。
    cache buffers chains
    cbc latch用来保护buffer cache中的buffer 链表,
    当在链表中搜索,增加,移除buffer时就需要获取cbc latch。
    cbc latch的争用通常是由于某个buffer频繁被使用。
    如果特定的子latch在与其它子latch比较后有很多的gets,MISSES, SLEEPS。
    获取该latch的内存地址,通过V$LATCH_CHILDREN.ADDR与X$BH去关联,就能找到特定的热块。
    SELECT OBJ data_object_id, FILE#, DBABLK,CLASS, STATE, TCH
    FROM X$BH
    WHERE HLADDR = 'address of latch'
    ORDER BY TCH;

    X$BH.TCH是一个接触计数器,tch高表明这是个热块。
    一个latch会保护很多块,这些块中间的某个块可能就是热块,一个高tch值的块将是一个潜在的热块。执行如下查询多次
    识别出多次出现的块,查询DBA_EXTENT得到块所在的segment。
    SELECT OBJECT_NAME, SUBOBJECT_NAME
    FROM DBA_OBJECTS
    WHERE DATA_OBJECT_ID = &obj;

  • 相关阅读:
    升级visual studio 2010中的jquery1.4.2
    windows 自动登录
    clipse3.2/3.3中指定第三方包(JAR)和类路径(CLASSPATH)的几个方法(转做笔记)
    MyEclips 配置文章集合
    JNDI全攻略(二)
    JNDI全攻略(一)
    Eclipse中webinf和metainf文件夹的信息
    MYECLIPSE7.5中安装SVN几步轻松实现
    天风网上商店系统 Beta (源码)
    SQL server 2005中无法新建作业(Job)的问题
  • 原文地址:https://www.cnblogs.com/wangxingc/p/6204635.html
Copyright © 2011-2022 走看看