创建没有数据的物化视图

tee*_*epu 0 oracle plsql

我需要创建test没有数据的物化视图,然后我将创建一个脚本来第一次将数据插入到这个物化视图中。在此之后,我将每晚运行物化视图刷新以刷新视图。

由于我不是物化视图的专家,任何人都可以在这里帮助我。

目前我有脚本来创建物化视图,该视图运行 2 小时,处理 2000 万行。

create materialize view

Wil*_*son 5

如果我正确理解了这个问题,您想将 MV 创建分解为单独的步骤:

  1. 创建一个空表/物化视图。
  2. 填充它。
  3. 安排每晚刷新过程。

为此,您可以使用该on prebuilt table子句将普通表更改为物化视图。

演示源码表:

create table demo_source (id, name) as
select 1, 'Red' from dual union all
select 2, 'Yellow' from dual union all
select 3, 'Orange' from dual union all
select 4, 'Blue' from dual;
Run Code Online (Sandbox Code Playgroud)

将成为我们的 MV 的新表(您也可以使用 填充它create table as select,或者您可以像任何普通表一样使用显式列名、数据类型、约束、分区等创建它):

create table demo_mv as
select * from demo_source s
where 1 = 2;
Run Code Online (Sandbox Code Playgroud)

使用单独的insert步骤填充它:

insert into demo_mv
select * from demo_source;
Run Code Online (Sandbox Code Playgroud)

现在我们把它从一个普通的表转换成一个 MV:

create materialized view demo_mv on prebuilt table
as
select * from demo_source;
Run Code Online (Sandbox Code Playgroud)

现在DEMO_MV是物化视图。