oracle一次卡顿案例(六)-latch free

一、背景概述

XX客户生产数据库2021年1月22日上午排查故障,客户提供高峰期卡顿时间发生在月结。由于报告保存时间为7天,无法查找到月初的报告,通过增加业务模拟环境,经过仔细诊断,发现业务产生时间段操作系统整体资源使用率较低,数据库latch争用较为严重。

二、问题分析

oracle一次卡顿案例(六)-latch free_第1张图片

Latch Activity(门闩活动)
oracle一次卡顿案例(六)-latch free_第2张图片

Latch Miss Sources(latch丢失源)
oracle一次卡顿案例(六)-latch free_第3张图片
此时可知latch free等待主要在result cache上消耗较为严重

Tips:
Oracle 11G之前的版本数据读写操作,都是将数据块(Data Block)缓存到Buffer Cache中。每次SQL语句执行,都是从Buffer Cache中检索数据块从而发生逻辑读。

在Oracle 11g中,推出了Result Cache这种新特性用于缓存结果集,Result Cache的原理是将SQL结果集直接进行保存,每次SQL语句来了,就直接把结果集合返回,减少了逻辑读。

result_cache_max_size:result cache是SGA share pool的一部分,由参数result_cache_max_size控制其大小,默认memory_target的0.25%或者sga_target的0.5%,但最大不能超过share pool的75%。

oracle一次卡顿案例(六)-latch free_第4张图片
oracle一次卡顿案例(六)-latch free_第5张图片
在这里插入图片描述

alter system set “_optimizer_ads_use_result_cache” = FALSE;

alter system set result_cache_max_size=0 scope=both;

oracle一次卡顿案例(六)-latch free_第6张图片

另:
加大result_cache_max_size(消耗内存资源)

三、检验

重新跑业务,拉取awr报告查看,业务正常
oracle一次卡顿案例(六)-latch free_第7张图片

你可能感兴趣的:(oracle,oracle案例,oracle,数据库)