(Oracleの)すべてのマテリアライズド・ビューをコミットすると、更新が速くなり、基礎となるすべてのデータがコピーされますか、それとも単にそれへの参照がありますか?
このマテリアライズドビューがすべてのデータをコピーする場合は、とにかく次のことを実行できます。
create table3 as ( table1 union all table2 );
これにより、テーブル3にインデックスとマテリアライズドビューログを作成できます。テーブル3は、テーブル1とテーブル2への単なる参照です。
この理由は、マテリアライズドビューに次のことを入れたいからです。
create materialized view mat1
refresh fast on commit
(
select data, count(*)
from (table1 union all table2)
group by data
);
ただし、上記は高速で更新できません。
しかし、次のようなことが機能します。
create materialized view mat1
refresh fast on commit
(
select data from table1
union all
select data from table2
);
create materialized view mat2
refresh fast on commit
(
select data, count(*)
from mat2
group by data
);
しかし、最初のマテリアライズドビューがすべてのデータを不必要に複製しているのではないかと心配しています。