400-090-9964


博客 | 论坛

教学文章

干货分享!中国某大型钢铁集团调优案例(物化视图)

时间:2018-10-10 来源:

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、性能问题解决,此类的问题在实际的工作中常见,很多子系统创建了很多物化视图,后来子系统撤销了,但是相关联的物化视图日志的关联关系没有清除,导致物化视图日志里面的内容日积月累越来越多,造成性能问题。

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright 2017 ALL Rights Reserved 京ICP备11008061号 京公网110108006275号

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com bd.cuug.com

电话:010-59426307 010-59426319 邮政编码:100089

海淀校区:北京市海淀区紫竹院路88号紫竹花园4号楼D座703(CUUG)

昌平校区:北京昌平区沙河镇科技经营管理学院教学楼主楼9层

西安校区:陕西省西安市长安北路中贸广场15号楼2单元2509