2011-11-11 45 views
3

我想找出一個數據庫做什麼操作(即選擇,插入,更新)迴應說:嵌套物化視圖找出提交時的操作?

INSERT INTO T(col_x,col_y,col_z)值(val_x,val_y,val_z);

在這種情況下,T是一個具有物化視圖日誌的表,但是具有嵌套物化視圖的樹,該視圖基於它在提交時刷新。 (例如,T1基於T,T2基於T1和U1等)。

我想知道數據庫在響應提交時做了什麼,因此我可以看到他們是否可以加速進程(即添加索引或修改實例化視圖)。

我更喜歡一個不需要數據庫系統用戶/直接機器訪問的解決方案,但是如果這是唯一可能的解決方案,那麼就可以。

+0

+1所張貼原來的問題,但如果你知道在此基礎上表中的物化日誌,你知道,當你在這個表中插入甚至會發生什麼。但是,重要的是要知道,在提交刷新時,所有DML隱含的都是在同一個事務中完成的。直到所有MV都刷新後纔會執行。 –

回答

2

你可以做的是

exec dbms_monitor.database_trace_enable(); 

啓動數據庫跟蹤這將跟蹤這是發生在數據庫中的UDUMP DIR一切。 那麼就

grep "MV_NAME" * 

這將輸出其中有什麼與你的MV所有跟蹤文件。 之後,您將不得不總結這些痕跡,以便使用tkprof更好地理解它們。

不要忘記禁用數據庫跟蹤。

丹尼爾