【发布时间】:2016-07-20 18:34:01
【问题描述】:
我使用这个子句来创建物化视图
CREATE MATERIALIZED VIEW mvName
REFRESH FAST
START WITH TO_DATE('01-APR-2016 12:19:00','dd-mon-yyyy hh24:mi:ss')
NEXT SYSDATE+1/1440 as ....;
使用这个脚本,这不会创建实体化视图。但是如果我使用 REFRESH COMPLETE,那么它将创建物化视图。
oracle 文档中还有一条注释说 如果您指定 REFRESH FAST,则 CREATE 语句将失败,除非物化视图主表已经存在物化视图日志。发生直接路径插入时,Oracle 数据库会自动创建直接加载程序日志。无需用户干预。
而且我不确定我遇到的问题是否是因为我不完全理解的这条评论(特别是这条评论:然后 CREATE 语句将失败,除非物化视图的物化视图日志已经存在主表)。
【问题讨论】:
-
真的,脚本中唯一重要的部分是
as ...部分......你漏掉了。 -
哇?为什么?这是一个选择 * stmt。使用 REFRESH FAST 子句时有什么需要特别注意的吗?
-
好吧,因为您的选择中有大量 restrictions 可能会或可能不会使其符合快速刷新的条件。如果不知道你的 sql 是什么,就不可能知道它是否可用于快速刷新。