2017-02-27 61 views
0

如何檢查mview日誌是否正在使用?Oracle mview日誌正在使用中?

select * from sys.mlog$ 

我有2行在上面的sys表,但哪裏是連接到mviews?

編輯:這是非常可能的,我的問題是不清楚的,因爲缺乏理解。我會嘗試在這裏修改:

我在我的數據庫中看到2個mview日誌。我也看到他們所屬的表格。我的理解是,mview日誌用於「REFRESH FAST」mviews。也許他們也可以用於其他的東西。所以在我刪除這些mview日誌之前,我想知道它們是否在使用中。我可以以某種方式查詢依賴於這些mview日誌的mviews嗎?

回答

1

您可以使用以下查詢。

select master, log, temp_log from sys.mlog$ where mowner = user and master = 'Table Name'; 

Master表示表名。 Mview日誌文件可以在沒有物化視圖的情況下存在。

您可以使用GET_MV_DEPENDENCIES程序的DBMS_MVIEW包來知道與特定表相關的MView。

例子:dbms_mview.get_mv_dependencies (owner.table, output);

更新 上述過程會給你相關的表MViews。查詢USER/ALL_MVIEWS以瞭解其刷新方法。

SQL> select mview_name, refresh_method from user_mviews; 

MVIEW_NAME      REFRESH_ 
------------------------------ -------- 
M_VIEW_A      FAST 

如果刷新方法是FAST那麼您需要MView日誌。

文檔:Refresh Dependent Materialized Views with REFRESH_DEPENDENT

+0

也許我是個盲人,但沒有「大師」分表和「日誌」指向MVIEW日誌?我的2行上的「temp_log」爲空。所以我仍然需要知道如果任何mviews需要這些mview日誌。 – Stig

+0

太好了,我們確定mivew日誌只能被FAST REFRESH mviews使用嗎? – Stig