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

wanglinghua0907發表於2024-01-26

一、背景概述

XX客戶生產資料庫2021年1月22日上午排查故障,客戶提供高峰期卡頓時間發生在月結。由於報告儲存時間為7天,

無法查詢到月初的報告,透過增加業務模擬環境,經過仔細診斷,發現業務產生時間段作業系統整體 資源使用率較低,資料庫latch爭用較為嚴重。


二、問題分析 


Latch Activity(門閂活動)

 


Latch Miss Sources(latch丟失源)

 


此時可知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%。


 


alter system set "_optimizer_ads_use_result_cache" = FALSE;

alter system set result_cache_max_size=0 scope=both;


另:

加大result_cache_max_size(消耗記憶體資源)


三、檢驗

重新跑業務,拉取awr報告檢視,業務正常

 


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69980685/viewspace-3005077/,如需轉載,請註明出處,否則將追究法律責任。

相關文章