Fehler „Nicht genügend gemeinsam genutzter Speicher“ beheben
Wenn Sie AlloyDB Omni ohne genügend gemeinsam genutzten Arbeitsspeicher für die spaltenbasierte Engine ausführen, wird möglicherweise der folgende Fehler angezeigt:
Insufficient shared memory for generating the columnar formats.
Um dieses Problem zu beheben, geben Sie die Menge des gemeinsam genutzten Speichers an, der für den AlloyDB Omni-Container verfügbar ist.
Linux
Achten Sie darauf, dass Sie AlloyDB Omni bereits installiert haben und Ihr
/dev/shm-Verzeichnis im Container bereitgestellt ist. Weitere Informationen finden Sie unter AlloyDB Omni-Installation anpassen.Erhöhen Sie die Größe der
/dev/shm-Partition Ihres Hostcomputers, indem Sie beispielsweise die Datei/etc/fstabbearbeiten.
macOS
Installieren Sie einen neuen AlloyDB Omni-Container und geben Sie einen größeren Wert für den gemeinsam genutzten Speicher für das Flag --shm-size an.
Tabellen finden, die in der spaltenorientierten Engine enthalten sind
Erstellen Sie in der Ansicht g_columnar_relations Abfragen, um die Tabellen zu finden, die in der spaltenorientierten Engine vorhanden sind.
SELECT * FROM g_columnar_relations;
Gesamtspeicher ermitteln, der von der spaltenorientierten Engine verwendet wird
Mit der SQL-Funktion google_columnar_engine_memory_available() können Sie die Menge an Arbeitsspeicher ermitteln, die von der spaltenorientierten Engine verwendet wird.
SELECT google_columnar_engine_memory_available();
Ermitteln, ob bestimmte Spalten in der spaltenbasierten Engine nicht befüllt werden
Probieren Sie die folgenden möglichen Lösungen aus:
- Prüfen Sie, ob der Datentyp der Spalte von der spaltenorientierten Engine unterstützt wird.
- Wenn Sie der Basistabelle vor Kurzem Spalten hinzugefügt oder daraus entfernt haben, prüfen Sie, ob Sie denselben Vorgang in der spaltenorientierten Engine ausgeführt haben.
Prüfen, ob eine Abfrage die spaltenorientierte Engine verwendet
Prüfen Sie im Abfrageplan, ob ein Planner-Knoten vom Typ „Custom Scan (columnar scan)“ vorhanden ist.
Laufende Wartungsarbeiten finden
Fragen Sie die Ansicht g_columnar_jobs ab, um die laufenden Jobs zu finden.
SELECT * FROM g_columnar_jobs;
Menge der Ressourcen festlegen, die bei Wartungsaktivitäten in der spaltenbasierten Engine verwendet werden
Standardmäßig verwendet die spaltenorientierte Engine bis zu 20% der Datenbankressourcen. Wenn Sie die Nutzung erhöhen oder verringern möchten, passen Sie die Einstellung google_columnar_engine.maintenance_cpu_percentage (GUC) an. Weitere Informationen finden Sie unter CPU-Ressourcen für Wartungsaufgaben anpassen.