Aktualisierung von dynamischen Tabellen verwalten¶
Die Aktualisierung von dynamischen Tabellen kann mit den folgenden Operationen gesteuert werden:
Aufgabe |
Beschreibung |
---|---|
Hält das Aktualisieren einer dynamischen Tabelle an. |
|
Setzt das Aktualisieren einer angehaltenen dynamischen Tabelle fort. |
|
Löst eine manuelle Aktualisierung einer dynamischen Tabelle aus. |
|
Ändert oder bestimmt die Verzögerung für eine dynamische Tabelle. |
Dynamische Tabellen können automatisch angehalten werden. Weitere Informationen dazu finden Sie unter Erläuterungen zum Verhalten bei automatischem Anhalten (unter diesem Thema).
Die folgende Abbildung illustriert die Operationen für das Anhalten, Fortsetzen und manuelle Aktualisieren im Kontext der vor- und nachgelagerten Beziehungen zu anderen dynamischen Tabellen.
Die Abbildung zeigt eine einfache deklarative Datenpipeline, die aus dynamischen Tabellen aufgebaut ist. Die dynamische Tabelle DTRoot ist der Anfang der Pipeline. Ähnlich wie Wasser, das in einem Strom fließt, fließen die Daten in einer dynamischen Tabellen-Pipeline von der Wurzel stromabwärts in Richtung der dynamischen Tabelle DTEnd am Stromende:
DT2 wird als stromabwärts, also nachgelagert, von DT1 beschrieben, weil sie von dieser dynamischen Tabelle abhängt, und als stromaufwärts, also vorgelagert, von DT3 beschrieben, die von ihr abhängt.
DT3 befindet sich stromabwärts, also nachgelagert von DT2 als auch von DT1, da sie direkt von DT2 und indirekt von DT1 abhängt.
DT1 befindet sich stromaufwärts gegenüber den anderen dynamischen Tabellen, ist ihnen also direkt oder indirekt vorgelagert.
Anhalten¶
Mit SUSPEND wird das Aktualisieren einer dynamischen Tabelle angehalten.
Wichtig
Das Anhalten kaskadiert stromabwärts und bewirkt, dass die nachgelagerten dynamischen Tabellen ebenfalls angehalten werden.
In dem Beziehungsdiagramm würde das Anhalten von DT1 dazu führen, dass DT2 angehalten wird, was bewirkt, dass DT3 angehalten wird.
Weitere Informationen zum Anzeigen des Status dynamischer Tabellen finden Sie unter Nutzungshinweise.
So halten Sie das Aktualisieren einer dynamischen Tabelle an:
ALTER DYNAMIC TABLE <name> SUSPEND;
Die vollständige Syntax des Befehls ALTER DYNAMIC TABLE finden Sie unter ALTER DYNAMIC TABLE.
Fortsetzen¶
Mit RESUME wird das Aktualisieren einer dynamischen Tabelle neu gestartet oder fortgesetzt.
Wichtig
Das Fortsetzen kaskadiert stromabwärts und bewirkt, dass nachgelagerte dynamische Tabellen, die nicht manuell angehalten wurden, automatisch angehalten werden.
In dem Beziehungsdiagramm würde das Fortsetzen von DT1 dazu führen, dass auch DT2 fortgesetzt wird, was wiederum dazu führt, dass DT3 fortgesetzt wird.
Nur implizit angehaltene dynamische Tabellen werden auf diese Weise fortgesetzt. Manuell angehaltene dynamische Tabellen werden nicht fortgesetzt, wenn eine vorgelagerte dynamische Tabelle fortgesetzt wird.
Weitere Informationen zum Anzeigen des Status dynamischer Tabellen finden Sie unter Auflisten dynamischer Tabellen und Anzeigen von Informationen zu dynamischen Tabellen.
So fahren Sie mit dem Aktualisieren einer dynamischen Tabelle fort:
ALTER DYNAMIC TABLE product RESUME;
Manuelles Aktualisieren¶
Lösen Sie manuell die Aktualisierung einer dynamischen Tabelle aus.
Wichtig
Die manuelle Aktualisierung wirkt sich kaskadenartig auf alle vorgelagerten dynamischen Tabellen aus.
Im Beziehungsdiagramm bewirkt eine manuelle Aktualisierung von DT3, dass DT2 aktualisiert wird, was wiederum dazu führt, dass DT1 aktualisiert wird.
So aktualisieren Sie eine dynamische Tabelle manuell:
ALTER DYNAMIC TABLE <name> REFRESH;
Verzögerung dynamischer Tabellen ändern¶
Wenn eine dynamische Tabelle auf anderen dynamischen Tabellen basiert, können Sie TARGET_LAG = DOWNSTREAM
angeben. Die Angabe von DOWNSTREAM bewirkt, dass eine dynamische Tabelle auf der Grundlage der Verzögerung der ihr nachgelagerten dynamischen Tabellen aktualisiert wird.
Weitere Informationen und Beispiele für TARGET_LAG = DOWNSTREAM
finden Sie unter Erläuterungen zur Zielverzögerung.
Geben Sie DOWNSTREAM für die Verzögerung einer dynamischen Tabelle an:
ALTER DYNAMIC TABLE <name> SET TARGET_LAG = DOWNSTREAM;
Wenn eine dynamische Tabelle in regelmäßigen Abständen aktualisiert werden soll, um einen bestimmten Grad an Aktualität zu erhalten, können Sie TARGET_LAG = {num} { seconds | minutes | hours | days }
angeben:
ALTER DYNAMIC TABLE <name> SET TARGET_LAG = '1 hour';
Erläuterungen zum Verhalten bei automatischem Anhalten¶
Bemerkung
Eine dynamische Tabelle wird angehalten, wenn das System fünf aufeinanderfolgende Aktualisierungsfehler feststellt. Dynamische Tabellen, die aufgrund von Aktualisierungsfehlern angehalten wurden, werden gemeinhin als automatisch angehalten (auto suspended) bezeichnet, da sie vom System und nicht durch Benutzeraktionen angehalten wurden.
Alle dynamischen Tabellen, die von der angehaltenen dynamischen Tabelle abhängen, werden ebenfalls angehalten. SCHEDULING_STATE beschreibt den aktuellen Status einer dynamischen Tabelle.
Um den Zeitplanungsstatus der dynamischen Tabelle anzuzeigen, rufen Sie die Tabellenfunktion DYNAMIC_TABLE_GRAPH_HISTORY auf und prüfen die Spalte SCHEDULING_STATE.