zoukankan      html  css  js  c++  java
  • WAIT EVENT之ROW CACHE LOCK

    http://www.oraclefans.cn/forum/showtopic.jsp?rootid=4806

    ROW CACHE LOCK等待事件是一个共享池相关的等待事件。是由于对于字典缓冲的访问造成的。
    
    P1 - Cache Id
    P2 - Mode Held
    P3 - Mode Requested
    mode 和REQUEST的取值:
    
    KQRMNULL 0   null mode - not locked
    KQRMS    3   share mode
    KQRMX    5   exclusive mode
    KQRMFAIL 10  fail to acquire instance lock

    如果是RAC/OPS环境,前台进程发出锁请求,LCK0进程发出锁请求。如果是单实例模式,由前台进程直接发出锁请求。

    在RAC/OPS环境下,前台进程会循环等待锁的获取,最多会等待60秒钟。在单实例环境,前台进程会循环1000次,等待3秒钟。PMON进程无论在哪种模式,都会等待5秒钟。

    要注意的是单实例模式下和多实例模式下申请该锁调用的模块是不同的(kqrget()- 单实例,kqgigt()- 多实例)。

    如果发现这个等待十分高,一般来说可能由于2种原因,一是共享池太小了,需要增加共享池,另外一种情况是SQL分析过于频繁,对于共享池的并发访问量过大。对于任何一种情况,绝大多数情况下加大共享池会有助于降低该等待,不过加大共享池的时候也要注意,并不一定所有的情况下增加共享池都会有明显的效果,特别是对于第二种情况,精确的分析十分重要。另外进一步分析,弄清楚哪些ROW CACHE的等待最为严重,有助于解决问题。

    比如说如果发现dc_sequences等待比较严重,那么单纯的增加共享池的大小是起不到应有的作用的,而是要通过优化SEQUENCE的访问性能(比如CACHE,NOORDER等)来达到目的。对于早期的版本(7,8.0),SEQUENCE_CACHE_ENTRIES参数的调整也十分关键。

    如果dc_sequences等待比较严重,而且系统中有很多sequences,怎么判断那个需要调整呢?我调整了一个频繁调用的sequence的cache,可是还是很高
    
    
                                       Get    Pct    Scan   Pct      Mod      Final
    Cache                         Requests   Miss    Reqs  Miss     Reqs      Usage
    ------------------------- ------------ ------ ------- ----- -------- ----------
    dc_histogram_data                5,164    0.2       0              0      1,852
    dc_histogram_data_values           940    0.0       0              0        396
    dc_histogram_defs                7,665    0.5       0              0      8,472
    dc_object_ids                   21,806    0.2       0              0      5,849
    dc_objects                     131,786    0.1       0              1      2,389
    dc_profiles                    259,782    0.0       0              0          2
    dc_rollback_segments            59,880    0.1       0             34        956
    dc_segments                      6,136    1.0       0              0      6,533
    dc_sequences                       835   72.8       0            835         50
    dc_table_scns                      185    2.7       0              3          2
    dc_tablespace_quotas                 5   40.0       0              5          1
    Oracle、Linux、Unix
  • 相关阅读:
    实战分享 | 你知道这个死锁是怎么产生的吗?
    HDU 3016 线段树区间更新+spfa
    POJ 2828 线段树(想法)
    POJ 2184 01背包+负数处理
    HDU 2955 01背包(思维)
    HDU 1171 背包
    HDU 1561 树形DP入门
    POJ 3694 tarjan 桥+lca
    POJ 2446 最小点覆盖
    POJ 2226 最小点覆盖(经典建图)
  • 原文地址:https://www.cnblogs.com/taowang2016/p/3035569.html
Copyright © 2011-2022 走看看