優化器統計跟蹤(SYS.EXP_HEAD$ SYS.EXP_OBJ$ SYS.EXP_STAT$不)導致表空間 SYSAUX不斷增長


資料來自support文檔 ID 2354960.1

環境:

aws rds 19c(亞馬遜雲oracle 數據庫)

背景:

在一次查看數據庫表段的占用空間大小的時候,無意間發現其中EXP_開頭的表占用很大的空間,如下:

 

 

 處理:

 

  • 優化器表達式跟蹤在具有以下對象的 SYSAUX 中分配了過多空間:
  • Awrinfo 報告按以下對象顯示大段使用情況   

SYS.EXP_HEAD$
SYS.EXP_OBJ$
SYS.EXP_STAT$

 

統計監控在 12.2 中默認啟用。12.2 中的新優化器功能引入了監視表達式統計信息,以收集 SQL 查詢中的表達式使用統計信息。

監控功能由隱含參數“_column_tracking_level”控制。

當監控表達式統計處於活動狀態時,默認情況下啟用。

然而,扯淡的是雲上oracle參數組根本關閉不了這個參數(沒有這個參數)

 

 

注意:in-memory 關閉對 SQL 的執行計划沒有影響。詳情查看網頁 https://blogs.oracle.com/optimizer/expression-tracking

--禁用參數:_column_tracking_level

alter system set "_column_tracking_level"=17 scope=both;
--wait 10 minutes

--purge 表里面的數據

exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO();
truncate table sys.exp_head$ drop storage;
truncate table sys.exp_obj$ drop storage;
truncate table sys.exp_stat$ drop storage;
alter index SYS.I_EXP_HEAD$ rebuild tablespace sysaux online;
alter index SYS.I_EXP_STAT$ rebuild tablespace sysaux online;
alter index SYS.I_EXP_OBJ$ rebuild tablespace sysaux online;

--如果需要重啟監控

alter system set "_column_tracking_level"=21 scope=both; 

 

注意:在執行這些步驟時,可能會遇到錯誤 ORA-00600: [qosdExpObjChange: rc!=1],這是內部錯誤 28681153 的結果:內部 PDCDB : ORA-00600:: [QOSDEXPSTATREAD: EXPCNT MISMATCH]。在這種情況下,可能需要重新啟動數據庫。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM