10 個の列がtable T
あり、そのうちの 3 つだけでマテリアライズド ビュー ログを作成し、それら 3 つのマテリアライズド ビューを作成した場合、テーブル内の任意の列 (ログ内の列以外) を更新すると、レコードが挿入されるのはMLOG$_T
なぜですか? 回避する方法はありますか?
ありがとう
10 個の列がtable T
あり、そのうちの 3 つだけでマテリアライズド ビュー ログを作成し、それら 3 つのマテリアライズド ビューを作成した場合、テーブル内の任意の列 (ログ内の列以外) を更新すると、レコードが挿入されるのはMLOG$_T
なぜですか? 回避する方法はありますか?
ありがとう
いいえ、避けることはできません。ログの主な目的は、変更されたデータ自体ではなく、変更された行を識別することです (ただし、ログにデータを含めることもできます)。ログを維持するためのプロセスは、ログを使用する作成される可能性のあるビューについて何も知らないため、テーブルの変更についてログを維持する必要があります。
これは次のようになります。後で、他の列を使用する同じテーブルに別のマテリアライズド ビューを作成するとします。ログが役立つ場合は、それらの行の変更に関する情報も維持する必要があります。結局、テーブルごとに 1 つのログしか作成できません。