- Kategorien:
Systemfunktionen (Systeminformationen)
SYSTEM$DATABASE_REFRESH_PROGRESS, SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB – Veraltet¶
Mit der Funktionsfamilie SYSTEM$DATABASE_REFRESH_PROGRESS kann der Status einer Datenbankaktualisierung in verschiedenen Dimensionen abgefragt werden:
SYSTEM$DATABASE_REFRESH_PROGRESS gibt ein JSON-Objekt zurück, das den aktuellen Aktualisierungsstatus für eine sekundäre Datenbank nach Namen angibt.
SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB gibt ein JSON-Objekt zurück, das den aktuellen Aktualisierungsstatus für eine sekundäre Datenbank durch eine Aktualisierungsabfrage angibt.
Bemerkung
Diese Funktionen geben die Datenbankaktualisierungsaktivitäten der letzten 14 Tage zurück.
Syntax¶
SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )
SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )
Argumente¶
secondary_db_name
Name der sekundären Datenbank. Dieses Argument ist optional, wenn die sekundäre Datenbank die aktive Datenbank der aktuellen Sitzung ist.
Beachten Sie, dass der gesamte Name in einfache Anführungszeichen gesetzt werden muss.
query_id
ID der Datenbank-Aktualisierungsabfrage. Die Abfrage-ID kann von der Seite History der Weboberfläche abgerufen werden.
Ausgabe¶
Die Funktion gibt die folgenden Elemente in einem JSON-Objekt zurück:
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
phaseName |
TEXT |
Name der bisher abgeschlossenen (oder laufenden) Replikationsphasen. Die Liste der Phasen finden Sie in den Nutzungshinweisen. |
resultName |
TEXT |
Status der Replikationsphase. |
startTimeUTC |
NUMBER |
Zeitpunkt, zu dem die Replikationsphase begann. Das Format ist die Epochenzeit. |
endTimeUTC |
NUMBER |
Zeitpunkt, zu dem die Phase beendet ist, falls anwendbar. Das Format ist die Epochenzeit. |
details |
VARIANT |
Ein separates JSON-Objekt, das die Gesamtzahl der Bytes in der Datenaktualisierung sowie die Anzahl der in der Phase bisher kopierten Bytes anzeigt. Wenn die Aktualisierungsanweisung zuvor fehlgeschlagen ist oder abgebrochen und erneut initiiert wurde, gibt das Objekt die Anzahl der Bytes an, die beim zweiten Versuch übersprungen wurden. Das Objekt |
Nutzungshinweise¶
Gibt nur Ergebnisse für Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) zurück.
Die folgende Liste zeigt die Verarbeitungsreihenfolge der Phasen:
SECONDARY_UPLOADING_INVENTORY
PRIMARY_UPLOADING_METADATA
PRIMARY_UPLOADING_DATA
SECONDARY_DOWNLOADING_METADATA
SECONDARY_DOWNLOADING_DATA
COMPLETED / FAILED / CANCELED
Beispiele¶
Im folgenden Beispiel wird der aktuelle Aktualisierungsstatus für die angegebene sekundäre Datenbank abgerufen. Die Ergebnisse werden in einem JSON-Objekt zurückgegeben:
SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');
Im folgenden Beispiel werden die gleichen Details wie im vorherigen Beispiel abgerufen, die Ergebnisse werden jedoch in relationale Spalten getrennt und die Zeitstempel werden in TIMESTAMP_LTZ umgewandelt:
SELECT value:phaseName::string AS "Phase", value:resultName::string AS "Result", TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime", TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime", value:details AS "details" FROM table(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS('mydb1'))));
Im folgenden Beispiel wird der Status für die angegebene Datenbankaktualisierungsabfrage abgerufen. Die Ergebnisse werden in einem JSON-Objekt zurückgegeben:
SELECT SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b');
Im folgenden Beispiel werden die gleichen Details wie im vorherigen Beispiel abgerufen, die Ergebnisse werden jedoch in relationale Spalten getrennt und die Zeitstempel werden in TIMESTAMP_LTZ umgewandelt:
SELECT value:phaseName::string AS "Phase", value:resultName::string AS "Result", TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime", TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime", value:details AS "details" FROM TABLE(FLATTEN(input=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b'))));