zoukankan      html  css  js  c++  java
  • 【转载】latch: cache buffers chains

    本文转自惜分飞的博客,博客原文地址:www.xifenfei.com/1109.html,支持原创,分享知识!

     

        当一个数据块读入sga区,相应的buffer header会被放置到hash列表上,我们称其这hash chains,chain在中文的意为链条或串的意思,表达就是关连性.如果一个进程想访问或修改hash chain上的block,它首先要获得”cache buffers chains” latch。

     

    原因一:低效率的SQL语句(主要体现在逻辑读过高)


    cache buffers chains latch很大程度与逻辑读有关,所以要观注v$sql中BUFFER_GETS/EXECUTIONS大的语句。
    同时每一个逻辑读需要一个latch get 操作及一个cpu操作,这样的sql也会很耗cpu资源。

     

    原因二:热块(访问过于频繁)


    找出热点块方法一:

    --找出p1raw
    select p1,p1raw from v$session_wait where event='latch: cache buffers chains';
     
    --找到对象
    SELECT /*+ RULE */
     E.OWNER || '.' || E.SEGMENT_NAME SEGMENT_NAME,
     E.PARTITION_NAME,
     E.EXTENT_ID EXTENT#,
     X.DBABLK - E.BLOCK_ID + 1 BLOCK#,
     X.TCH,
     L.CHILD#
      FROM SYS.V$LATCH_CHILDREN L, SYS.X$BH X, SYS.DBA_EXTENTS E
     WHERE X.HLADDR = '00000002576EE018'--p1raw
       AND E.FILE_ID = X.FILE#
       AND X.HLADDR = L.ADDR
       AND X.DBABLK BETWEEN E.BLOCK_ID AND E.BLOCK_ID + E.BLOCKS - 1
     ORDER BY X.TCH DESC;

    找出热点块方法二:

    --直接找出热点块
    SELECT OBJECT_NAME, SUBOBJECT_NAME
      FROM DBA_OBJECTS
     WHERE DATA_OBJECT_ID IN
           (SELECT DATA_OBJECT_ID
              FROM (SELECT OBJ DATA_OBJECT_ID, FILE#, DBABLK, CLASS, STATE, TCH
                      FROM X$BH
                     WHERE HLADDR IN (SELECT ADDR
                                        FROM (SELECT ADDR
                                                FROM V$LATCH_CHILDREN
                                               ORDER BY (GETS + MISSES + SLEEPS) DESC)
                                       WHERE ROWNUM < 10)
                     ORDER BY TCH DESC)
             WHERE ROWNUM < 10);
  • 相关阅读:
    [ASPNET2.0]Membership类+SQLServer2005,AspNet_regsql.exe的使用
    Tooltip的几个技巧(转自网络)
    使用aspnet_regsql.ext命令行工具后,就不能用sql语句创建新的表了,总是显示已存在XXX对象。
    我已经无可救药
    陈彩君(帮别人名字作诗)
    震后首游都江堰感怀(二)
    克服创业前的恐惧:31条建议帮你有勇气做自己的老板
    想你已经成为了一种习惯
    诸葛亮给儿子上的十堂课
    一生中,这8种朋友是你的无价之宝
  • 原文地址:https://www.cnblogs.com/kerrycode/p/4062509.html
Copyright © 2011-2022 走看看