Ist es möglich, teilweise Aktualisierung einer materialized view in Oracle?
Ich habe eine sehr komplexe Oracle-Ansicht basierend auf anderen materialisierte Ansichten, normale Ansichten sowie einige Tabellen (ich kann nicht "fast refresh"). Die meisten der Zeit, die vorhandenen Datensätze in dieser Ansicht basieren auf einem date sind und "stabil", mit dem neue Datensätze mit neuen Daten.
Gelegentlich erhalte ich zurück-Termine. Ich weiß, was diese sind und wie mit Ihnen umzugehen, wenn ich Pflege eine Tabelle, aber ich möchte zu halten das eine "Ansicht". Eine vollständige Aktualisierung würde dauern rund 30 Minuten, aber es dauert nur 25 Sekunden für ein bestimmtes Datum.
Kann ich festlegen, dass nur ein Teil einer materialized view aktualisiert werden soll (d.h. die betroffenen Termine)?
Habe ich Schrott, die Ansicht und verwenden Sie eine Tabelle und ein Verfahren zum Auffüllen oder aktualisieren Sie ein bestimmtes Datum in die Tabelle?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Partition von Datum wie in Antwort 3 (skaffman).
Können Sie einfach die Aktualisierung einer normalen mv(
table_refreshed
unten) und verwenden Sie die exchange-Schlüsselwort, d.h.Nach mehr zu Lesen, und die Beurteilung durch das fehlen von Antworten auf diese Frage komme ich zu dem Schluss gekommen, dass es nicht möglich ist, zu aktualisieren, eine einzelne partition einer materialisierten Ansicht.
Wenn Sie können geben Sie ein Beispiel für die syntax, die das Gegenteil beweisen, ich werde glücklich markieren Sie Ihre Antwort, die akzeptiert man.
Anderen, die sich diese Fragen in der Zukunft nützlich: Sie möchten vielleicht auch wissen, dass in Oracle 10g, erfrischend und eine partition (oder alle mview), führen zu Oracle, zum Thema
DELETE
, gefolgt vonINSERT
.Wenn dies ist, geben Sie performance-Probleme (wie mich), gibt es eine option zur Nutzung
atomic_refresh => false
, dieTRUNCATE
, dannINSERT /*+APPEND*/
.War ich in der Lage zu aktualisieren, eine einzelne partition eine materialisierte Ansicht mit partition change tracking.
Scheint es, dass die Ansicht erstellt, mit
REFRESH FAST WITH ROWID
option undDBMS_MVIEW.REFRESH
heißt mit'P'
Methode.Können Sie die partition materialisierten sichten nur da kann man mit normalen Tabellen. Partitionieren Sie Ihre mview nach Datum, und dann können Sie aktualisieren Sie nur die benötigte partition.