19.7 rac for aix 7.1 row cache mutex 等待

    下午收到应用通知:杰哥,今天凌晨4到到5点,原来几分钟的任务跑了一个小时还没跑完,帮忙查下原因。

赶紧登录数据库主机,搜问题时间段的awr:

直接跳转到TOP 10

 row cache mutex 是字典缓冲区中的某个对象等待

再看看sql 执行时间最长的几个:

    dbms_scheduler 类型的sql引起了注意,这个是数据库的统计信息执行sql

这几个等待时间都和shared pool有关系。去查看解析情况:

    硬解析很厉害,正确情况下硬解析每秒30次左右属于正常

查看数据字段缓冲区状态信息:

  directiorary cache state:

      看可以以下几个过高:

     dc_histogram_data/defs: 申请获取直方图缓存(过高原因1、硬解析多 2、业务表中过多使用直方图信息,可以删除无用的直方图 3、手工做直方图统计)

    dc_users:申请获取用户缓存(错误密码频繁连接、批量用户赋权、bug)

    dc_objects:申请获取对象缓存(硬解析过高、手工编译对象、失效对象自动编译等等)

通过Active Session History (ASH) Report看能否发现蛛丝马迹:

   这里row cache mutex 里的p1对应的对象可以通过以下命令查看:

select * from v$rowcache where cache# in (16,10);

 和上面也能对应上。

 sql area    miss 96%,怪不得这么多硬解析

综上所述,我猜测根本原因是: SQL 的cursor失效导致命中不了SQL AREA,所以造成了大量的硬解析。游标失效的根本原因是每天凌晨4点有个统计分析的job

       收集表统计信息后,cursor就会失效,执行计划会重新生成,就会造成硬解析。

扩展:搜集统计信息时有个参数决定游标是否立即失效-no_invalidate.数据库采集默认是auto,由数据库决定啥时候失效

-----------------------------------------------

本人淘宝店铺,欢迎咨询:

oracle 经营范围:

1、单机安装2、rac安装3、dataguard 配置
4、备份恢复5、漏洞修复6、GoldenGate安装
7、数据迁移8、版本升级9、问题咨询

https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111debPYFG5q&ft=t&id=608457389678

    

   

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值