今日对数据库巡检发现 ,存在100G 对象,MLOG$_T1
查看物化日志刷新情况
set line 200; set pagesize 20000; col owner for a15; col mview_name for a30; col query for a60; select owner,mview_name,refresh_method,last_refresh_date,compile_state from dba_mviews;
步骤理解分析:
1.用户/应用创建事务。
2.数据在主表中提交
3.完全刷新操作是通过DBMS_MVIEW软件包手动执行
4.MV中的数据会被删除并通过主表的内容完全刷新
5.用户可以通过MV查询数据,其中含有主表的实时快照
快速刷新MV的步骤:
1.用户创建事务
2.数据在主表中提交
3.主标上的内部触发器为MV日志表添加数据
4.通过DBMS_MVIEW软件包执行快速刷新
5.MV上一次刷新后创建的DML更改被应用到MV。从MV日志删除不在有用的行
6.用户可以通过MV查询数据,其中含有主表数据的快照
————————————————
-
1 查询对应的注册的MVIEW
SELECT * FROM DBA_REGISTERED_MVIEWS where can_use_log='YES';
-
2 取消对物化视图的注册依赖
begin
dbms_mview.unregister_mview('OPERATION','MV','TXB');
END;
/**EXEC DBMS_MVIEW . UNREGISTER_MVIEW ( mviewowner , mviewname , mviewsite ) ;
- mviewowner: MView的OWNER。
- mviewname: MView的名字。
- mviewsite: 这个可以从DBA_REGISTERED_MVIEWS中的MVIEW_SITE中看到。
- **/
begin
dbms_mview.purge_mview_from_log('123'); ----mvid从哪里看????
END;
-
3 删除物化日志
drop materialized view log on fm.T1;
-
4 创建物化日志
create materialized view log on fm.t1 with rowid /with primary key;
select * from fmdb.MLOG$_T1;create materialized view log on teacher with primary key;--创建视图日志
/****
create materialized view mv_teacher8
refresh fast [ with primary key/with rowid] --此处可省略,因为该视图默认就是基于主键
as
select * from teacher ******/
-
5 删除物化视图
drop materialized VIEW OPERATION.MV;
-
6 创建物化视图
CREATE MATERIALIZED VIEW OPERATION.MV
REFRESH FAST ON DEMAND
START WITH sysdate NEXT SYSDATE+ 1/17280
AS
SELECT STATEMENT@app;