Oracle实体化视图(二)

2014-11-24 16:14:12 · 作者: · 浏览: 1
VG,VARIANCE,STDDEV,MIN,MAX被聚合的值可以是任何的
sql表达式。
REFRESH FAST 总结:
一个包含关联和聚合的实体化视图是可能的。但有如下限制:
1,实体化视图中不能包含非复用的表达式(具有实时特征的)。比如SYSDATE and ROWNUM.
2,实体化视图中不能包含RAW or LONG 数据类型。
3,实体化视图相关的表必须创建实体化视图日志,并且满足如下条件
包含被实体化视图引用到的所有的列。指定with rowid和INCLUDING NEW VALUES.
如果表的预期操作是inserts/direct-loads, deletes, and updates的混合,指定SEQUENCE子句只用SUM,COUNT,AVG,STDDEV,VARIANCE,MIN and MAX支持fast refresh.
对于每个聚合agg(expr),必须相应写一个count(expr)与之对应.
如果VARIANCE(expr)or STDDEV(expr)被指定,那么COUNT(expr)and SUM(expr) 必须被指定。在select列表中必须包含所有group by中出现的列.如果实体化视图有如下的一点,那么fast refresh 只支持常规DML inserts和直接路径的装载(direct loads)
a 实体化视图包含MIN 或者 MAX
b 实体化视图包含SUM(expr)但是没有COUNT(expr)
c 实体化视图中不包含COUNT(*)
如上的实体化视图称之为insert-only materialized view.
包含MAX or MIN实体化视图在delete或者混合的DML操作之后可以是 fast refresh,条件是视图中没有where 子句。
(10g以上适用)
如果没有外联接,在where 子句中可以包含有选择性的条件和关联
如果实体化视图中包含外联接,fast refresh只支持在outer table被修改的情况。同样,唯一性约束必须存在于inner join table中。如果有外联,所有的关联条件都必须用 AND 连接和必须用 = 操作符。