干货分享:某大型钢铁集团调优案例
最新学讯:近期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、性能问题解决,此类的问题在实际的工作中常见,很多子系统创建了很多物化视图,后来子系统撤销了,但是相关联的物化视图日志的关联关系没有清除,导致物化视图日志里面的内容日积月累越来越多,造成性能问题。