Per utilizzare il motore colonnare quando utilizzi AlloyDB per PostgreSQL su Google Cloud, consulta Configurare il motore colonnare.
Per una panoramica concettuale del motore colonnare AlloyDB, consulta Informazioni sul motore colonnare AlloyDB.
Abilitare il motore colonnare
Per utilizzare il motore colonnare su un'istanza, imposta il flag
google_columnar_engine.enabled
dell'istanza su on
.
Per impostare questo flag su un'istanza:
Esegui il comando PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Se vuoi modificare la configurazione del motore colonnare, segui le istruzioni nella sezione successiva prima di riavviare il server di database. In caso contrario, segui i due passaggi successivi per riavviare subito il server di database.
Configura le dimensioni dello spazio di archiviazione delle colonne
Mentre il motore a colonne è abilitato su un'istanza, AlloyDB alloca una parte della memoria dell'istanza per archiviare i dati a colonne. L'allocazione di RAM ad alta velocità allo spazio di archiviazione a colonne garantisce che AlloyDB possa accedere ai dati a colonne il più rapidamente possibile.
Puoi anche impostare l'allocazione su una dimensione fissa e specifica utilizzando il flag
google_columnar_engine.memory_size_in_mb
.
Per impostare questo flag su un'istanza:
Esegui il comando PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
Sostituisci
COLUMN_STORE_SIZE
con la nuova dimensione dell'archivio colonne, in megabyte.
Attiva unione vettorizzata
Il motore colonnare ha una funzionalità di join vettoriale che può migliorare le prestazioni dei join applicando l'elaborazione vettoriale alle query idonee.
Dopo aver attivato il join vettoriale, il pianificatore di query AlloyDB ha la possibilità di applicare l'operatore di join vettoriale anziché l'operatore di hash join PostgreSQL standard. Il planner prende questa decisione confrontando il costo di esecuzione della query utilizzando uno dei due metodi.
Per attivare il join vettoriale su un'istanza, imposta il flag
google_columnar_engine.enable_vectorized_join
dell'istanza su on
.
Per impostare questo flag su un'istanza, esegui il comando PostgreSQL ALTER SYSTEM
:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Per impostazione predefinita, AlloyDB alloca un thread alla funzionalità di join vettoriale. Puoi aumentare il numero di thread disponibili per
questa funzionalità impostando il flag
google_columnar_engine.vectorized_join_threads
su un valore maggiore.
Aggiornare manualmente il motore colonnare
Per impostazione predefinita, il motore colonnare è impostato per aggiornare automaticamente l'archivio colonne in background quando è abilitato. In determinate situazioni, ad esempio se l'aggiornamento automatico non aggiorna una relazione con un numero elevato di blocchi non validi, potrebbe essere necessario aggiornare manualmente l'archivio colonnare.
Per aggiornare manualmente il motore delle colonne, esegui la seguente query SQL:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Sostituisci TABLE_NAME
con il nome della tabella o della vista materializzata che
vuoi aggiornare manualmente.
Disattivare il motore colonnare
Per disattivare il motore columbar su un'istanza, imposta il flag google_columnar_engine.enabled
su off
.
Per impostare questo flag su un'istanza:
Esegui il comando PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Risolvere i problemi del motore colonnare
Correggere l'errore "Memoria condivisa insufficiente"
Se esegui AlloyDB Omni senza memoria condivisa sufficiente per l'utilizzo del motore colonnare, potresti visualizzare questo errore:
Insufficient shared memory for generating the columnar formats.
Puoi risolvere questo problema specificando la quantità di memoria condivisa disponibile per il contenitore AlloyDB Omni. Il modo in cui lo fai varia a seconda del sistema operativo host
Linux
Aumenta le dimensioni della partizione /dev/shm
della macchina host utilizzando una tecnica come la modifica del file /etc/fstab
.
macOS
Installa un nuovo container AlloyDB Omni, specificando
un valore di memoria condivisa più grande per il flag --shm-size
.
Correggere le colonne che non vengono compilate
Se le colonne non vengono compilate nel motore colonnare, potrebbe verificarsi una delle seguenti situazioni:
Le colonne che vuoi aggiungere includono un tipo di dati non supportato.
I requisiti del motore colonnare non vengono soddisfatti.
Per trovare la causa di questo problema, prova quanto segue:
Conferma che le tabelle o le viste materializzate nella query si trovino nel motore colonnare.
Verifica l'utilizzo del motore colonnare utilizzando l'istruzione
EXPLAIN
.
Passaggi successivi
Consulta l'elenco completo dei flag del database del motore colonnare.
Scopri di più sulla conversione automatica in colonne.