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.
Geben Sie die Menge an gemeinsam genutztem Speicher an, die dem AlloyDB Omni-Container zur Verfügung steht, um dieses Problem zu beheben.
Linux
Prüfen Sie, ob Sie AlloyDB Omni bereits installiert haben und das Verzeichnis
/dev/shmim 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 ausgefüllt 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;
Gesamten Arbeitsspeicher ermitteln, den die spaltenbasierte Engine verwendet
Mit der SQL-Funktion google_columnar_engine_memory_available() können Sie die Größe des Arbeitsspeichers ermitteln, den die spaltenorientierte Engine verwendet.
SELECT google_columnar_engine_memory_available();
Prüfen, ob bestimmte Spalten in der spaltenbasierten Engine nicht befüllt sind
Versuchen Sie Folgendes:
- Prüfen Sie, ob die spaltenbasierte Engine den Datentyp der Spalte unterstützt.
- 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 Planerknoten „Custom Scan (columnar scan)“ vorhanden ist.
Laufende Wartungsjobs finden
Fragen Sie die Ansicht g_columnar_jobs ab, um die laufenden Jobs zu finden.
SELECT * FROM g_columnar_jobs;
Legen Sie die Menge an Ressourcen fest, die für Wartungsaktivitäten in der spaltenbasierten Engine verwendet werden.
Standardmäßig verwendet die spaltenbasierte Engine bis zu 20% der Datenbankressourcen. Wenn Sie diese 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.