我在主系统(Oracle 18c)和外部系统(Oracle 19c)之间创建了一个物化视图:
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不会从日志中删除行。
all_registered_mviews看上去像。问题:
到目前为止,MV日志数据似乎还没有自动清除:

为什么当记录同步后,MV日志不自动清除?
发布于 2020-11-30 17:36:49
尝试将MV直接建立在源表上,而不是在中间视图上。在MV查询中包含"isgis=1“条件。
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=1https://dba.stackexchange.com/questions/280602
复制相似问题