1

10 個の列がtable Tあり、そのうちの 3 つだけでマテリアライズド ビュー ログを作成し、それら 3 つのマテリアライズド ビューを作成した場合、テーブル内の任意の列 (ログ内の列以外) を更新すると、レコードが挿入されるのはMLOG$_Tなぜですか? 回避する方法はありますか?

ありがとう

4

1 に答える 1

2

いいえ、避けることはできません。ログの主な目的は、変更されたデータ自体ではなく、変更された行を識別することです (ただし、ログにデータを含めることもできます)。ログを維持するためのプロセスは、ログを使用する作成される可能性のあるビューについて何も知らないため、テーブルの変更についてログを維持する必要があります。

これは次のようになります。後で、他の列を使用する同じテーブルに別のマテリアライズド ビューを作成するとします。ログが役立つ場合は、それらの行の変更に関する情報も維持する必要があります。結局、テーブルごとに 1 つのログしか作成できません。

于 2012-01-17T23:24:56.007 に答える