2017-02-27 3 views
0

Wie überprüfe ich, ob ein mview-Protokoll verwendet wird?Oracle mview meldet sich an?

Ich habe 2 Zeilen in der oben genannten sys Tabelle, aber wo sind die Verbindungen zu mviews?

Bearbeiten: Es ist sehr möglich, meine Frage ist unklar wegen mangelndem Verständnis. Ich werde versuchen, hier umzuformulieren:

Ich sehe 2 mview Protokolle in meiner Datenbank. Ich sehe auch die Tabellen, denen sie auch gehören. Mein Verständnis ist, dass mview Protokolle für "REFRESH FAST" mviews verwendet werden. Vielleicht können sie auch für andere Dinge verwendet werden. Bevor ich also diese mview-Logs lösche, möchte ich wissen, ob sie in Verwendung sind. Kann ich irgendwie mviews abfragen, die von diesen mview-Protokollen abhängen?

Antwort

1

Sie können die folgende Abfrage verwenden.

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

Master bezeichnet den Tabellennamen. Die Mview-Protokolldatei kann ohne materialisierte Ansicht existieren.

Sie können GET_MV_DEPENDENCIES Prozedur von DBMS_MVIEW Paket verwenden, um die MViews zu einer bestimmten Tabelle zu kennen.

Beispiel: dbms_mview.get_mv_dependencies (owner.table, output);

aktualisieren Above Verfahren Sie die msichten auf eine Tabelle, geben wird. Fragen Sie USER/ALL_MVIEWS, um seine Aktualisierungsmethode zu kennen.

SQL> select mview_name, refresh_method from user_mviews; 

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

Wenn es Refresh-Methode ist FAST Sie die MVIEW Protokolle dann benötigen.

Dokumentation:Refresh Dependent Materialized Views with REFRESH_DEPENDENT

+0

Vielleicht bin ich blind, aber "Master" Punkte nicht an den Tisch und "log" zeigt auf das mview log? "temp_log" ist in meinen 2 Zeilen null. Ich muss also immer noch wissen, ob mview diese mview Logs benötigt. – Stig

+0

Großartig, sind wir sicher, dass Mivew Logs nur von FAST REFRESH mviews verwendet werden können? – Stig

Verwandte Themen