在 Oracle 材料化视图中,是否有一种方法可以在使用的表格发生更改时自动刷新它自己?我应该使用哪种刷新模式和刷新方法?在 Sql Developer 中,我应该使用哪些选项?
提前感谢您。
在 Oracle 材料化视图中,是否有一种方法可以在使用的表格发生更改时自动刷新它自己?我应该使用哪种刷新模式和刷新方法?在 Sql Developer 中,我应该使用哪些选项?
提前感谢您。
是的,您可以使用ON COMMIT
定义一个物化视图,例如:
CREATE MATERIALIZED VIEW sales_mv
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS SELECT t.calendar_year, p.prod_id ... FROM ...
FAST REFRESH
而不是COMPLETE
,因为后者会耗费太长时间。FAST REFRESH
,您需要满足多个限制和前提条件,请查阅Oracle文档:CREATE MATERIALIZED VIEW, FAST Clause以了解详情。我认为没有任何自动复制更改到m.view的方法。但是可以使用FAST(增量)刷新按需进行,您只需要为m.view或m.view组安排作业以执行刷新即可。您还可以使用m.view日志来跟踪所有dml并通过db链接将其传播到远程数据库上的m.view中进行快速刷新。
如果您需要在更改后立即复制更改,则建议使用Golden Gate或Streams(如果您不想许可GG)。请注意,Oracle已停止支持Streams,而支持Golden Gate,因此如果您遇到任何问题,您将独自解决。但无论如何,一旦掌握了它,它就是一个非常可靠的复制工具。