在物化视图的提交时刷新

时间:2013-11-20 09:26:38

标签: oracle materialized-views

我有2个基本操作表test_table1test_table2,我在其上创建了物化视图日志。我在此之上创建了一个名为test_view1的视图,它是test_table1test_table2的联接。现在,我需要在此视图test_view1上创建物化视图。

我将物化视图创建为REFRESH ON COMMIT并创建了它,但是当我将增量刷新的过程运行为per

execute DBMS_MVIEW.REFRESH('test_mview2', 'F', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);

即使在基表上应用了任何DML,物化视图也不会更新。但是,当我运行完整刷新程序时:

execute DBMS_MVIEW.REFRESH('test_mview2', 'C', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);

它正在更新。

如何为这个特定的物化视图刷新COMMIT?

dbms_mview.explain_mview的输出:(CApability_name --possible - msgtxt)

  1. REFRESH_FAST_PCT - N-- PCT不可能在任何细节上 在母校的表格
  2. REWRITE_FULL_TEXT_MATCH --N-- Oracle错误:请参阅RELATED_NUM和 RELATED_TEXT了解详情
  3. REWRITE_FULL_TEXT_MATCH --N--禁用查询重写 物化视图
  4. REWRITE_PARTIAL_TEXT_MATCH - N--物化视图无法支持 任何类型的查询重写
  5. REWRITE_PARTIAL_TEXT_MATCH --N--禁用查询重写 物化视图
  6. REWRITE_GENERAL - N--物化视图不支持任何类型的 查询重写
  7. REWRITE_GENERAL --N--禁用该功能的原因有 逃脱分析
  8. REWRITE_GENERAL --N--在物化上禁用查询重写 图
  9. REWRITE_PCT --N--一般重写是不可能的,或PCT不是
  10. PCT_TABLE_REWRITE - N-- Oracle错误:请参阅RELATED_NUM和  RELATED_TEXT了解详情
  11. PCT_TABLE_REWRITE - N-- relation不是分区表
  12. PCT - N -
  13. REFRESH_COMPLETE --Y -
  14. REFRESH_FAST - N -
  15. REWRITE - N -
  16. PCT_TABLE - N-- Oracle错误:请参阅RELATED_NUM和RELATED_TEXT  细节
  17. PCT_TABLE --N-- relation不是分区表
  18. REFRESH_FAST_AFTER_INSERT --N-- mv引用PL / SQL函数  维持状态
  19. REFRESH_FAST_AFTER_ONETAB_DML - N--查看原因  REFRESH_FAST_AFTER_INSERT已停用
  20. REFRESH_FAST_AFTER_ANY_DML N查看禁用REFRESH_FAST_AFTER_ONETAB_DML的原因

1 个答案:

答案 0 :(得分:0)

来自MV Capabilities的结果:

  
    

REFRESH_FAST_AFTER_INSERT N mv引用维护状态的PL / SQL函数

  

您有一个PL / SQL函数被定义为实体化视图的一部分,或者它引用的视图,这阻止了快速刷新工作。我打赌它会有一个SELECT语句,但无论如何它都不是确定性的。

相关问题