四、物化视图刷新的触发方式 1.ON DEMAND 仅在物化视图“需要”被刷新时才刷新。使用dbms_mview包刷新。 2.ON COMMIT 一旦基表有了事务提交,立刻刷新物化视图,使物化视图和基表数据一致。 但是不能跨库执行。(不知道别的库的提交动作) 五、物化视图的时间 1.START WITH刷新的开始时间 指定首次刷新的时间(一般指定的是当前时间,不过也可以在创建物化视图时不生成数 据,则可以考虑在指定的时间刷新,从而生成数据) 2.NEXT刷新的时间间隔 刷新的周期时间 start with sysdate next sysdate+1/1440 表示马上开始,刷新间隔为1分钟。(与on commit选项冲突) 六、物化视图基于的条件 1.WITH PRIMARY KEY 生成主键物化视图,也就是说物化视图是基于表的主键,而不是ROWID(对应于ROWD 子)。为了生成PRIMARY KEY子句,应该在表上定义主键,否则应该用基于ROWID 的物化视图。主键物化视图允许识别物化视图表而不影响物化视图增量刷新的可用性 2.WITH ROWID 基于rowid,不能对基表执行分组函数、多表连结等需要把多个rowid合成一行的操作 (理由很简单:到底以哪个rowid为准呢?) 只有一个单一的主表,不能包括下面任何一项: Distinct 聚合函数 Group by 子查询 。连接 ·SET操作 四、物化视图刷新的触发方式 1.ON DEMAND 仅在物化视图“需要”被刷新时才刷新。使用 dbms_mview 包刷新。 2.ON COMMIT 一旦基表有了事务提交,立刻刷新物化视图,使物化视图和基表数据一致。 但是不能跨库执行。(不知道别的库的提交动作) 五、物化视图的时间 1.START WITH 刷新的开始时间 指定首次刷新的时间(一般指定的是当前时间,不过也可以在创建物化视图时不生成数 据,则可以考虑在指定的时间刷新,从而生成数据) 2.NEXT 刷新的时间间隔 刷新的周期时间 start with sysdate next sysdate+1/1440 表示马上开始,刷新间隔为 1 分钟。(与 on commit 选项冲突) 六、物化视图基于的条件 1.WITH PRIMARY KEY 生成主键物化视图,也就是说物化视图是基于表的主键,而不是 ROWID(对应于 ROWID 子句)。 为了生成 PRIMARY KEY 子句,应该在表上定义主键,否则应该用基于 ROWID 的物化视图。主键物化视图允许识别物化视图表而不影响物化视图增量刷新的可用性 2.WITH ROWID 基于 rowid,不能对基表执行分组函数、多表连结等需要把多个 rowid 合成一行的操作 (理由很简单:到底以哪个 rowid 为准呢?) 只有一个单一的主表,不能包括下面任何一项: • Distinct • 聚合函数 • Group by • 子查询 • 连接 • SET 操作