12c設定RESULT_CACHE_MODE=MANUAL發生'Result Cache:RC Latch'型別的Latch Free等待

mosdoc發表於2016-12-04
當在 Oracle 12c 上設定 RESULT_CACHE_MODE = MANUAL 時發生'Result Cache: RC Latch'型別的”Latch Free”等待 (文件 ID 2102499.1)

轉到底部轉到底部

文件內容


症狀

更改

原因

解決方案

參考


適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文件所含資訊適用於所有平臺

症狀

  • 在 12C 上看到大量的'latch free'等待 (無論是從低版本升級上來的還是新安裝的)。
  • 當檢查 AWR 報告的時候,即使設定 RESULT_CACHE_MODE 為 MANUAL,在 latch statistics 部分顯示了對"Result Cache: RC Latch"的高競爭。
  • 所有使用 result cache 的 SQL 含有 DS_SVC 提示,也是動態的統計活動的一部分。例如 :
    SELECT /* DS_SVC */ /*+ dynamic_sampling(0) no_sql_tune no_monitoring optimizer_features_enable(default) no_parallel result_cache(snapshot=3600) */ SUM(C1)
    FROM (SELECT /*+ .......

     

更改

新安裝或從低版本升級到 12C。

原因

這個問題的原因是預設情況下在 12C 啟用了自動動態統計資訊,自動決定動態統計資訊是否是有用的和在所有的 SQL 語句上使用哪個統計級別。當優化器認為有必要的時候,它就會收集的動態統計資訊。有關此功能的詳細資訊請參閱:

Document 2002108.1 Automatic Dynamic Statistics

當自動動態取樣用於 SQL 語句,它可以決定,根據這些統計資料,對於這些 SQL 使用 result cache 是否可以獲得更好的響應時間; 這會導致大量使用 result cache,從而導致了在 Result Cache: RC Latch 型別的 latch free 上的爭用。

因此,這是預期的行為。

解決方案

 使用下面的命令可以關閉自動動態統計資訊使用結果快取的機制:

alter system set "_optimizer_ads_use_result_cache" = FALSE;

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

相關文章