重庆思庄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