干貨分享:某大型鋼鐵集團調優案例
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢1、 根據采集到的24小時產生的awr報告進行分析,以下因為篇幅的原因,只顯示2個時間段的報告:
報告一:
報告二:
2、 top10等待事件:
報告一:
報告二:
3、 查看段統計中物理讀最大的居然是一個物化視圖:
報告一:
報告二:
4、 查看訪問這個物化視圖日志的sql語句是什么:
報告一:
完整的sql語句:
update "TGCXM1"."MLOG$_TQMTON1" set snaptime$$ = :1 where snaptime$$ > to_date('2100-01-01:00:00:00', 'YYYY-MM-DD:HH24:MI:SS')
報告二:
5、 分析原因,查看跟該日志相關的物化視圖:
SQL> select * from USER_REGISTERED_MVIEWS where name=' MLOG$_TQMTON1';
SQL> select * from DBA_BASE_TABLE_MVIEWS where master=' MLOG$_TQMTON1';
分析發現,mview_id是208、1050、1310已經長時間沒有更新,導致相關聯的物化視圖無法更新,物化視圖的行數達到了1.8億條,從而導致每次更新物化視圖造成大量的物理讀,影響數據庫的性能。
6、 解決方式,去除無用物化視圖的綁定:
SQL> exec DBMS_MVIEW.unregister_mview('TGGGZ1','MLOG$_TQMTON1','mview_name');
7、 刪除的MVIEW_ID應該是不需要的MVIEW對應的ID
SQL> EXEC DBMS_MVIEW.PURGE_MVIEW_FROM_LOG(208);
SQL> EXEC DBMS_MVIEW.PURGE_MVIEW_FROM_LOG(1310);
SQL> EXEC DBMS_MVIEW.PURGE_MVIEW_FROM_LOG(1050);
8、此時可刷新物化視圖:
SQL> exec dbms_snapshot.refresh('MLOG$_TQMTON1');
9、此時源庫上對應的物化視圖日志MLOG$_TQMTON內容被清除:
10、性能問題解決,此類的問題在實際的工作中常見,很多子系統創建了很多物化視圖,后來子系統撤銷了,但是相關聯的物化視圖日志的關聯關系沒有清除,導致物化視圖日志里面的內容日積月累越來越多,造成性能問題。