左联接边表的快速刷新耗时如此

时间:2018-08-20 11:28:50

标签: sql oracle materialized-views

有一个物化视图:

create materialized view mat_report
refresh fast on commit
as
    select 
         o.rowid as post_rowid,
         o.id,
         vp.rowid as valid_post_rowid,
         ivp.rowid as invalid_post_rowid
     from post o, valid_post vp, invalid_post ivp
    where o.code like (vp.code || '%')
      and o.code not like (ivp.code || '%')
      and vp.user_id = ivp.user_id(+)

以及用于检测其更改的日志,如下所示:

create materialized view log on post  with rowid;

create materialized view log on valid_post with rowid;

create materialized view log on invalid_post with rowid;

如您所见,post表具有与valid_postinvalid_post的内部联接,而valid_post已与invalid_post的联接。

将记录插入valid_post时,实例化视图的刷新速度很快,且耗时不到3秒;但是,将记录插入invalid_post中时,刷新速度却很慢,而且耗时超过4分钟。

哪里出问题了,我该怎么办?

注意:可能要提一提,我已经找到了一些专注于_mv_refresh_use_stats的网站,但是很遗憾,我无法完全了解它。

0 个答案:

没有答案