如何做到物化视图的自动刷新
Posted
技术标签:
【中文标题】如何做到物化视图的自动刷新【英文标题】:How to do automatic refresh of materialized views 【发布时间】:2019-01-08 11:31:18 【问题描述】:我想在创建物化视图时将数据插入表后自动刷新物化视图。
我尝试了以下代码(以 Creating materialized view that refreshes every 5 min 开头的完整刷新)但无法正常工作。此代码也是每 1 分钟刷新一次的解决方案。
我想要插入数据时的解决方案。有可能吗?
Create Materialized view temp_mv
refresh complete start with (sysdate) next (sysdate+1/1440) with rowid as
select * from temp;
【问题讨论】:
您是否尝试过创建触发器并显式刷新view
?
使用视图而不是物化视图。那么数据总是“新鲜的”。
“不工作”不是很有帮助。您似乎正在寻找on commit
refresh;但看看限制,看看你的 MV 是否适合。 Read more.
【参考方案1】:
您可以试试这个,但它不适用于更复杂的视图。
--create table
create table temp (a int not null primary key);
-- create table log;
create materialized view log on temp
with primary key
including new values;
--create view
create materialized view temp_mv
build immediate
refresh fast
on commit
as
select * from temp;
-- populate table
insert into temp select level from dual connect by level <100;
select * from temp_mv; -- no value
commit; -- view is refreshed
select * from temp_mv; -- all values
【讨论】:
以上是关于如何做到物化视图的自动刷新的主要内容,如果未能解决你的问题,请参考以下文章