Auf dieser Seite wird beschrieben, wie Sie die Aktualität der Daten im Spaltenspeicher der spaltenorientierten Engine in AlloyDB Omni in einem Container aufrechterhalten.
Wenn Tabellenzeilen hinzugefügt, gelöscht oder aktualisiert werden, werden die Daten im kollaborativen Speicher nicht sofort von der spaltenorientierten Engine aktualisiert. Stattdessen werden die betroffenen Inhalte im Speicher für Spalten als ungültig markiert. Abfragen werden sowohl mit spaltenorientierten Daten aus dem Speicher für Spalten als auch mit zeilenorientierten Daten aus dem Zeilencache und dem Datenbankspeicher geplant und ausgeführt.
Im Laufe der Zeit werden immer mehr Datenblöcke ungültig, sodass die Leistungssteigerungen durch die spaltenorientierte Engine so weit sinken, dass die spaltenorientierten Daten aktualisiert werden müssen, um die Leistungssteigerungen wiederherzustellen. Wenn dieser Aktualisierungsgrenzwert erreicht wird, aktualisiert die spaltenorientierte Engine die ungültigen Daten im Tabellenspeicher mithilfe eines Hintergrundjobs. Standardmäßig verwendet die spaltenorientierte Engine einen Aktualisierungsgrenzwert von 50. Das bedeutet, dass bestimmte Inhalte im Spaltenspeicher zum Aktualisieren markiert werden, wenn 50% der Inhalte ungültig geworden sind. Sie können diesen Aktualisierungsgrenzwert ändern, um den Overhead der automatischen Aktualisierung anzupassen und möglicherweise eine bessere kontinuierliche Abfrageleistung für Ihre Anwendungslast zu erzielen.
Außerdem können Sie die Daten einer Tabelle im Spaltenspeicher jederzeit manuell aktualisieren. Normalerweise führen Sie eine manuelle Aktualisierung durch, wenn Änderungen an einer Tabelle so schnell wie möglich nach der Ausführung im Speicher mit den Zeilen aufgenommen werden sollen.
Aktualisierungsgrenzwert der spaltenbasierten Engine ändern
Bearbeiten Sie den Wert des Datenbank-Flags google_columnar_engine.refresh_threshold_percentage
, um den Aktualisierungsgrenzwert der spaltenbasierten Engine zu ändern.
ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;
THRESHOLD
: Ganzzahlwert zwischen 1
und 100
. Dieser Wert gibt den Prozentsatz der Datenblöcke im Inhalt an, die ungültig werden müssen, damit der Inhalt zum Aktualisieren markiert wird.
Daten einer Tabelle im Spaltenspeicher manuell aktualisieren
Führen Sie die SQL-Funktion google_columnar_engine_refresh
aus, um die Daten einer Tabelle im In-Memory-Spaltenspeicher manuell zu aktualisieren.
SELECT google_columnar_engine_refresh(TABLE_NAME);
TABLE_NAME
: ein String mit dem Namen der Tabelle oder der materialisierten Ansicht. Wenn sich die Tabelle oder Ansicht in einem anderen Schema als public
befindet, geben Sie den Namen des Schemas im Format SCHEMA_NAME.TABLE_NAME
an, z. B. myschema.mytable
.