私は、約 8 つのマスター テーブルにまたがる単純なマテリアライズド ビューを持っています。
create materialized view MV
REFRESH FAST ON COMMIT as
SELECT...
また、具体化されたログのサイズを監視するために、このクエリを実行しています。
select segment_name, SUM ( (BYTES) / (1024 * 1024)) "Allocated(MB)" from dba_segments where (segment_name, owner) IN (
select log_table, log_owner from dba_mview_logs where log_owner = 'XXX')
and segment_type = 'TABLE' GROUP BY segment_name;
コミット時に更新しているので、これらのログが大きくなる機会があるとは思いません。テーブルに書き込むとすぐに、ビューが更新され、ログがクリアされることを期待しています。
ただし、私のログのほとんどは 0.0625mb で、1 つが 27mb、もう 1 つが 2mb です。サイズが大きくなった原因を調べるにはどうすればよいですか?大きなサイズのログを持つ両方のテーブルには、おそらく大きなデータを保持する BLOB 列が含まれています。しかし、なぜこれらのログが 0 より大きいのか、基本的なレベルでは理解できません。