我使用脚本成功创建了一个物化视图:
CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item;
试图提高性能,我会这样改变
CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item
where to_char(last_upd,'yyyy') between to_char(sysdate,'yyyy')-3 and to_char(sysdate,'yyyy')+3;
运行脚本会引发错误 ORA-12015:无法通过复杂的查询创建快速刷新的物化视图
我不太了解它与快速刷新Restrictions
的匹配程度谢谢。
答案 0 :(得分:4)
看看General Restrictions on Fast Refresh
实例化视图的定义查询受到如下限制:
物化视图不得包含对非重复表达式的引用,例如SYSDATE和ROWNUM。
实例化视图不得包含对RAW或LONG RAW数据类型的引用。
它不能包含SELECT列表子查询。
在SELECT子句中不能包含分析函数(例如RANK)。
它不能包含MODEL子句。
它不能包含带有子查询的HAVING子句。
它不能包含具有ANY,ALL或NOT EXISTS的嵌套查询。
它不能包含[START WITH…] CONNECT BY子句。
它不能包含位于不同站点的多个明细表。
ON COMMIT实例化视图不能具有远程明细表。
嵌套的实例化视图必须具有联接或聚集。
带有GROUP BY子句的物化联接视图和物化聚合视图不能从索引组织的表中选择。
您的查询包含SYSDATE
,因此您不能将其用于FAST REFRESH