2011-11-11 2 views
3

私は、データベースが言うに応じて何の行動(すなわち選択、挿入、更新)を見つけるしたいと思います:ネストされたマテリアライズド・ビューはコミット時のアクションを検出しますか?

T(COL_X、col_y、col_z)の値(val_x、val_y、val_z)に挿入。

この場合、Tはマテリアライズド・ビュー・ログを持つ表ですが、コミット時にリフレッシュされるネスト化マテリアライズド・ビューのツリーがあります。 (例えば、T1はTに基づいており、T2はT1およびU1などに基づいている)。

コミットに応答してデータベースが何をしているかを見たいので、プロセスを高速化する(つまり、インデックスを追加するか、マテリアライズドビューを変更する)ことができるかどうかを確認できます。

私は、データベースシステムのユーザー/ダイレクトマシンアクセスを必要としないソリューションを希望しますが、それが可能な唯一の解決策であればOKです。あなたは何ができるか

+0

+1、しかし、あなたは、この表に基づいてマテリアライズド・ログを知っていれば、あなたは、この表に挿入したときに起こるでも知っています。ただし、コミット時にリフレッシュする場合、暗黙的に行われるDMLがすべて同じトランザクションで行われることを知っておくことが重要です。すべてのMVがリフレッシュされるまでコミットしません。 –

答えて

2

これはudumpのでdirにデータベースで起こっているすべてのものをトレースします

exec dbms_monitor.database_trace_enable(); 

してデータベーストレースを開始しています。 そしてちょうど

grep "MV_NAME" * 

この意志出力あなたのMVを行うには何も持っていたすべてのトレース・ファイル。 その後、tkprofを使用してトレースをよりよく理解できるように、トレースを要約する必要があります。

データベーストレースを無効にすることを忘れないでください。掲載元の問題のため

ダニエル

関連する問題