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;

  • 相关阅读:
    leetcode-654-最大二叉树
    leetcode-46-全排列
    图片懒加载?
    HTTP常见的状态码?
    线程与进程的区别?
    网页从输入网址到渲染完成经历了哪些过程?
    网页前端性能优化的方式有哪些?
    常见的浏览器内核有哪些?
    汇编语言--cpu的工作原理(寄存器)--手稿
    对于 vue3.0 特性你有什么了解的吗?
  • 原文地址:https://www.cnblogs.com/wangxingc/p/6204635.html
Copyright © 2011-2022 走看看