row cache objects latch研究

本文详细解析了Oracle数据库中的LATCH机制,包括rowcacheobjectslatch的特性、v$latch_children和v$rowcache/x$kqrst视图的对比、以及如何通过v$latch_misses查询定位LATCH竞争问题。同时提供了优化策略,帮助提升数据库性能。
1、row cache objects latch包含多个children latch

select child#, gets, misses, sleeps
from v$latch_children
where name='row cache objects'
order by 1;         
输出结果:
CHILD#       GETS        MISSES     SLEEPS
-------------- -------------- --------------- ----------
     (略)
         7       24430682      14976          4
     ( 略)

2、通过v$fixed_view_definition比对v$rowcache和x$kqrst

v$rowcache             x$kqrst                                       描述
 -----------------    -----------------------------------       ------------------------
 CACHE#                KQRSTCID                               ROWCACHE ID编号
 TYPE                      decode(KQRSTTYP,1,
                                 'PARENT','SUBORDINATE')   rowcache类型
 SUBORDINATE#  decode(KQRSTTYP,2,
                                  KQRSTSNO,null),                    subordinate#编号
 PARAMETER          KQRSTTXT                               参数名称,其决定
                                                                                       rowcache记录数量
 COUNT                    KQRSTCSZ                              在cache中各个参数的记录数
 USAGE                     KQRSTUSG,                            记录的有效数
 FIXED                        KQRSTFCS                             被修复的记录数
 GETS                        KQRSTGRQ,                             数据对象请求总数量
 GETMISSES            KQRSTGMI,                               数据对象请求miss数量
 SCANS                     KQRSTSRQ,                             scan请求数量
 SCANMISSES          KQRSTSMI,                              scan失败次数
 SCANCOMPLETES KQRSTSCO,                           SUBORDINATE记录列表,完全
                                                                                        scan扫描次数列表
 MODIFICATIONS      KQRSTMRQ,                           inserts, delete, update次数
 FLUSHES                  KQRSTMFL,                            flush到磁盘的次数
 DLM_REQUESTS     KQRSTILR,                             DLM请求次数
 DLM_CONFLICTS     KQRSTIFR,                             DLM冲突次数
 DLM_RELEASES       KQRSTISR                             DLM释放次数
                                       KQRSTCLN                           latch编号
                                        KQRSTOSZ                            未知
KQRSTCLN对应child#,所以我们能知道,一个或多个child#管理单个row cache

3、查看每个child#信息

select  kqrstcln child#,  kqrsttxt RowCacheName from x$kqrst
order by 1;

LD# ROWCACHENAME
---------- --------------------------------
         略
         7 dc_users
         7 dc_users
         7 dc_users
         7 dc_users
所以我们知道row cache objects latch的child#7是管理dc_users

4、如果出现latch出现sleeps值比较大,则可以通过x$kqrsts中找出row cachename,然后结合查看miss的位置,大概定位是row cache latch竞争原因

select "WHERE", sleep_count, location
from v$latch_misses
where parent_name='row cache objects'
and sleep_count>0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值