重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: 12.2:删除物化视图非常慢或挂起 [打印本页]

作者: 刘泽宇    时间: 前天 11:46
标题: 12.2:删除物化视图非常慢或挂起
概要:
启用10046跟踪'drop mview'命令执行显示如下查询的等待较多,该查询实际上对此表执行了删除操作 - “SYS.MVREF $ _CHANGE_STATS”
DELETE FROM SYS.MVREF $ _CHANGE_STATS
WHERE
REFRESH_ID =:B2 AND MV_OBJ#=:B1;


原因:
这是因为,在11g版本及以前,并没有对MVIEW使用情况的跟踪。但是,从12.2开始,实现了对MVIEW操作使用情况的跟踪。

表“SYS.MVREF $ _CHANGE_STATS”的delete语句执行走了全表扫描,如果表中有数百万个条目,则会导致严重的执行缓慢问题。
DELETE FROM SYS.MVREF $ _CHANGE_STATS
WHERE
REFRESH_ID =:B2 AND MV_OBJ#=:B1


解决方案:
- 如果不需要refresh-stats,可以truncate以下表:
truncate table mvref$_stats;
truncate table mvref$_run_stats;
truncate table mvref$_change_stats;
truncate table mvref$_stmt_stats;
- 关闭refresh-stats 收集:
exec dbms_mview_stats.set_system_default('COLLECTION_LEVEL', 'NONE');
select * from user_mvref_stats_sys_defaults;






欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2