2010-11-18 7 views
2

Ich habe eine materialisierte Ansicht auf einem Server, der von DB-Link erstellt wird. Auf diesem Mview läuft ein Job. (erstellt mit dbms_refresh.make früher).Änderungen in Materialized

Jetzt habe ich 3 neue Felder in der ursprünglichen Tabelle erstellt. Meine Abfragen sind.

1) Muss ich Mview wieder löschen und erstellen, wenn ja, muss ich Mview anmelden Hauptserver wieder erstellen 2) Was passiert mit Job läuft auf Mview, muss ich es agin erstellen?

Auch gibt es Ansichten erstellt auf Mview, also - Wenn ich Abfrage erstellen oder ersetzen, wird es jedes Problem erstellen?

Bitte führen.

Danke!

Antwort

3

Wenn Sie die neuen Spalten in Ihre materialisierte Ansicht einfügen müssen, müssen Sie die materialisierte Ansicht erneut erstellen. Sie müssen die Ansicht explizit löschen, da keine Anweisung "materialisierte Ansicht erstellen oder ersetzen" vorhanden ist.

DROP MATERIALIZED VIEW blah; 
CREATE MATERIALIZED VIEW blah... 

Das Löschen/erneute Erstellen der materialisierten Ansicht sollte den Aktualisierungsauftrag neu erstellen. Nicht zu 100% sicher, aber Sie sollten das Protokoll wahrscheinlich auch neu erstellen.

Und, wenn Sie nicht über die neuen Spalten in der Ansicht enthalten müssen, die Sie wirklich brauchen nichts zu tun ...

2

Nachdem Sie die materialisierte Ansicht gelöscht/erstellt haben, sollten Sie die anderen Ansichten anschließend erneut kompilieren, da sie möglicherweise ungültig geworden sind.

Sie können prüfen, ob das mit

select * 
from user_objects 
where status = 'INVALID'; 

Recompile passiert ist eine Ansicht in Ihrem Schema dies einfach neu kompiliert alles mit

alter view the_view compile; 

oder

exec dbms_utility.compile_schema(user); 

erfolgen. Stellen Sie sicher, dass Sie währenddessen keine laufenden Jobs haben!

+0

Sind Sie sicher, dass ‚erstellen oder ersetzen‘ arbeitet für eine materialisierte Ansicht ? re: DCookies Antwort (und meine Erfahrung) "create or replace" gibt einen Oracle-Fehler in einer materialisierten Ansicht zurück. – Andrew

+0

Sie haben Recht, materialisierte Ansichten können nicht ersetzt werden. Ich habe meine Antwort bearbeitet. –