我正在寻找 Oracle 物化视图的生命周期。例如语句:
Create materialized view foo
Refresh On Commit
...
每次提交到我的数据库时,是否会更新此视图,或者仅更新视图语句中引用的表之一?除此之外,Oracle 会在什么时候销毁旧缓存并用新缓存替换它?具体来说,物化视图的“陈旧”窗口是什么?意思是它取决于创建物化视图需要多长时间。
我正在寻找 Oracle 物化视图的生命周期。例如语句:
Create materialized view foo
Refresh On Commit
...
每次提交到我的数据库时,是否会更新此视图,或者仅更新视图语句中引用的表之一?除此之外,Oracle 会在什么时候销毁旧缓存并用新缓存替换它?具体来说,物化视图的“陈旧”窗口是什么?意思是它取决于创建物化视图需要多长时间。
该ON COMMIT
子句将修改在基表上发布 DML 的所有事务的提交过程:
指定 ON COMMIT 以指示每当数据库提交在物化视图的主表上操作的事务时将发生快速刷新。此子句可能会增加完成提交所需的时间,因为数据库执行刷新操作是提交过程的一部分。
提交将取决于物化视图的刷新是否成功(这意味着提交可能会失败,因为无法刷新依赖的 MV)。
刷新发生在与发出提交的事务相同的事务中。这意味着一旦提交完成,所有会话都可以看到更改(因此数据永远不会过时)。
您必须注意的一些事项: