物化视图,物化视图的作用
物化视图基本操作
创建物化视图日志
create materialized view log on cps_identity_account including new values;
删除物化视图日志
drop materialized view log on cpsmgt.cps_identity_account;
创建视图
----(1)-----有主键
create materialized view mv_cps_identity_account
refresh fast on demand
as
select * from
from cpsmgt.cps_identity_account@ic;
----(2)-----没有主键和索引
create materialized view lbi_ods.mv_cps_trans_record
refresh fast on demand with rowid
as
select * from cps_trans_record@tc;
------------删除视图
drop materialized view mv_cps_identity_account;
------------刷新视图(原表不含分区)
create or replace procedure prc_o_mv_cps_identity_account( iv_min in varchar2/*,
oi_return out integer*/)
authid current_user
/** head
* @name lbi_ods.prc_o_mv_cps_customer_account
* @caption
* @type collected by every 5 minutes
* @parameter iv_date in varchar2 statis date, format:yyyymmdd
* @parameter oi_return out integer execute state: 0 means ok ; others means error.
* @target lbi_ods#mv_test
* @version 2.0
* @author liuzan
* @create-date 2013-08-22
* @todo
* @version
* @mender <>
* @modify_date <YYYY-M-D>
* @modify_desc <>
* @copyright HUAWEI
*/
is
begin
---refresh mv data
dbms_mview.refresh('MV_CPS_IDENTITY_ACCOUNT','f');
commit;
end ;
物化视图建立的时候可以定义刷新方式,一般有: refresh fast 和 refresh complete之分,前者是只更新主表中变化的记录(主表必须建立materialized view log),而后者是把MV里面的数据全部更新。此外,更新方式还可以有:on demand, on commit, on force之分. on commit是及时更新。其实用户创建materialized view的时候可以指定更新频率,给你个例子
CREATE Materialized View mv_terminal
REFRESH FAST
NEXT SYSDATE + 30/(24*60)
AS
SELECT * FROM ........
这个MV每30分钟刷新一次,只刷新改变的数据
物化视图建立的时候可以定义刷新方式,一般有: refresh fast 和 refresh complete之分,前者是只更新主表中变化的记录(主表必须建立materialized view log),而后者是把MV里面的数据全部更新。此外,更新方式还可以有:on demand, on commit, on force之分. on commit是及时更新。其实用户创建materialized view的时候可以指定更新频率,给你个例子
CREATE Materialized View mv_terminal
REFRESH FAST
NEXT SYSDATE + 30/(24*60)
AS
SELECT * FROM ........
这个MV每30分钟刷新一次,只刷新改变的数据