我需要创建没有数据的物化视图test
然后我将创建一个脚本,以便第一次将数据插入到这个物化视图中。在此之后,我将运行物化视图刷新以每晚刷新视图。
由于我不是物化观点的专家,任何人都可以帮助我。
目前我有脚本来创建物化视图,该视图在2000万行中运行2小时。
create materialize view
答案 0 :(得分:0)
如果我是你,我会“按原样”创建物化视图(即你没有提到任何限制)。
无论如何:最简单的选择是在WHERE子句中包含 false 条件,该条件创建没有数据的对象,例如
SQL> create materialized view mv_dept as
2 select * from dept
3 where 1 = 2; --> this
Materialized view created.
SQL> select * from mv_dept;
no rows selected
SQL> desc mv_dept;
Name Null? Type
----------------------------- -------- --------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
SQL>
答案 1 :(得分:-1)
我有同样的问题。在部署时,我不希望刷新花费太多时间。所以我认为这是一个更好的解决方案。
drop materialized view test_mv;
create materialized view test_mv
as select * from all_objects
where 1 = ( select count(*) from user_tables where table_name = 'TEST_MV' ) ;
select * From test_mv
=> null
exec DBMS_MVIEW.REFRESH('TEST_MV', method => 'C', atomic_refresh => FALSE, out_of_place => false , PARALLELISM => 4);
select * From test_mv
=> result is now of all objects