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.
Attivare il motore colonnare
Per utilizzare il motore colonnare su un'istanza, imposta il flag dell'istanza
google_columnar_engine.enabled
su on.
Per impostare questo flag su un'istanza:
Esegui il
ALTER SYSTEMcomando PostgreSQL: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.
Configurare le dimensioni dello spazio di archiviazione a colonne
Quando il motore colonnare è 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
google_columnar_engine.memory_size_in_mb flag.
Per impostare questo flag su un'istanza:
Esegui il
ALTER SYSTEMcomando PostgreSQL:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;Sostituisci
COLUMN_STORE_SIZEcon la nuova dimensione dello spazio di archiviazione a colonne, in megabyte.
Attivare il join vettorializzato
Il motore colonnare ha una funzionalità di join vettorializzato che può migliorare le prestazioni dei join applicando l'elaborazione vettorializzata alle query idonee.
Dopo aver attivato il join vettorializzato, il pianificatore di query AlloyDB ha la possibilità di applicare l'operatore di join vettorializzato anziché l'operatore di hash join PostgreSQL standard. Il pianificatore prende questa decisione confrontando il costo di esecuzione della query utilizzando uno dei due metodi.
Per attivare il join vettorializzato su un'istanza, imposta il flag dell'istanza
google_columnar_engine.enable_vectorized_join
su on.
Per impostare questo flag su un'istanza, esegui il ALTER SYSTEM comando PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Per impostazione predefinita, AlloyDB alloca un thread alla funzionalità di join vettorializzato. Puoi aumentare il numero di thread disponibili per
questa funzionalità impostando il
google_columnar_engine.vectorized_join_threads
flag su un valore maggiore.
Aggiornare manualmente il motore colonnare
Per impostazione predefinita, il motore colonnare è configurato per aggiornare automaticamente lo spazio di archiviazione a colonne in background quando è abilitato. In alcune situazioni, ad esempio se l'aggiornamento automatico non aggiorna una relazione con un numero elevato di blocchi non validi, potrebbe essere necessario aggiornare manualmente lo spazio di archiviazione colonnare.
Per aggiornare manualmente il motore colonnare, 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 colonnare su un'istanza, imposta il flag google_columnar_engine.enabled su off.
Per impostare questo flag su un'istanza:
Esegui il
ALTER SYSTEMcomando PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Risolvere i problemi del motore colonnare
Risolvere un errore "memoria condivisa insufficiente"
Se esegui AlloyDB Omni senza una quantità di 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 container AlloyDB Omni. La procedura 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 maggiore per il flag --shm-size.
Risolvere il problema delle colonne non popolate
Se le colonne non vengono popolate 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 a:
Verificare che le tabelle o le viste materializzate nella query siano nel motore colonnare.
Verificare l'utilizzo del motore colonnare utilizzando l'
EXPLAINistruzione.
Passaggi successivi
Consulta l'elenco completo dei flag di database del motore colonnare.
Scopri di più sulla colonnarizzazione automatica.