首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >物化视图不清除(通过视图通过dblink )

物化视图不清除(通过视图通过dblink )
EN

Database Administration用户
提问于 2020-11-30 15:35:03
回答 1查看 763关注 0票数 0

我在主系统(Oracle 18c)和外部系统(Oracle 19c)之间创建了一个物化视图:

代码语言:javascript
复制
create materialized view primary_system.workorder_mv
build immediate 
refresh force 
on demand 
start with sysdate next sysdate + (30/(60*60*24))
as
select
    cast(workorderid as number(38,0)) as objectid,
    wonum,
    status,
    --other fields
    longitudex,
    latitudey
from
    external_system.workorder_vw@gistomax --view in external system that is served up by dblink (gistomax)
    --the view looks like this: select * from workorder where isgis=1


create materialized view log on external_system.workorder with rowid;  

文档称物化视图应该自动清除:

在物化视图刷新期间使用了物化视图日志中的行甲骨文自动跟踪,并从日志中使用了这些 <#>purges,这样日志就不会无休止地增长。由于多个简单物化视图可以使用相同的物化视图日志,因此刷新一个物化视图时可能仍然需要已用于刷新一个物化视图的行。除非所有物化视图都使用了行,否则Oracle不会从日志中删除行。

问题:

到目前为止,MV日志数据似乎还没有自动清除:

为什么当记录同步后,MV日志不自动清除?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-11-30 17:36:49

尝试将MV直接建立在源表上,而不是在中间视图上。在MV查询中包含"isgis=1“条件。

代码语言:javascript
复制
create materialized view primary_system.workorder_mv
build immediate 
refresh force 
on demand 
start with sysdate next sysdate + (30/(60*60*24))
as
select
    cast(workorderid as number(38,0)) as objectid,
    wonum,
    status,
    --other fields
    longitudex,
    latitudey
from
    external_system.workorder@gistomax
    where isgis=1
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/280602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档