Para usar o motor de colunas quando usar o AlloyDB para PostgreSQL no Google Cloud, consulte o artigo Configure o motor de colunas.
Para uma vista geral conceptual do motor de colunas do AlloyDB, consulte o artigo Acerca do motor de colunas do AlloyDB.
Ative o motor de colunas
Para usar o motor de colunas numa instância, defina a flag google_columnar_engine.enabled
da instância como on
.
Para definir esta flag numa instância, faça o seguinte:
Execute o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Se quiser ajustar a configuração do motor de colunas, siga as instruções na secção seguinte antes de reiniciar o servidor da base de dados. Caso contrário, siga os dois passos seguintes para reiniciar o servidor de base de dados agora.
Configure o tamanho do armazenamento de colunas
Embora o motor de colunas esteja ativado numa instância, o AlloyDB atribui uma parte da memória da instância para armazenar os respetivos dados de colunas. A dedicação de RAM de alta velocidade ao seu armazenamento de colunas garante que o AlloyDB pode aceder aos dados em formato de colunas o mais rapidamente possível.
Também pode definir a alocação para um tamanho fixo e específico através da flag google_columnar_engine.memory_size_in_mb
.
Para definir esta flag numa instância, faça o seguinte:
Execute o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
Substitua
COLUMN_STORE_SIZE
pelo novo tamanho da coluna store, em megabytes.
Ative a junção vetorizada
O motor de colunas tem uma funcionalidade de junção vetorizada que pode melhorar o desempenho das junções aplicando o processamento vetorizado a consultas qualificadas.
Depois de ativar a junção vetorizada, o planeador de consultas do AlloyDB tem a opção de aplicar o operador de junção vetorizada em vez do operador de junção hash do PostgreSQL padrão. O planeador toma esta decisão comparando o custo de execução da consulta através de qualquer um dos métodos.
Para ativar a junção vetorizada numa instância, defina a flag
google_columnar_engine.enable_vectorized_join
da instância como on
.
Para definir esta flag numa instância, execute o comando ALTER SYSTEM
PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Por predefinição, o AlloyDB atribui um segmento à funcionalidade de junção vetorizada. Pode aumentar o número de threads disponíveis para esta funcionalidade definindo a flag google_columnar_engine.vectorized_join_threads
para um valor superior.
Atualize manualmente o motor de colunas
Por predefinição, o motor de colunas está definido para atualizar automaticamente o arquivo de colunas em segundo plano quando ativado. Pode ter de atualizar manualmente o armazenamento em colunas em determinadas situações, como se a atualização automática não atualizar uma relação com um número elevado de blocos inválidos.
Para atualizar manualmente o motor da coluna, execute a seguinte consulta SQL:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Substitua TABLE_NAME
pelo nome da tabela ou da vista materializada que quer atualizar manualmente.
Desative o motor de colunas
Para desativar o motor de colunas numa instância, defina a flag google_columnar_engine.enabled
como off
.
Para definir esta flag numa instância, faça o seguinte:
Execute o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Resolva problemas do motor de colunas
Corrija um erro de "memória partilhada insuficiente"
Se executar o AlloyDB Omni sem memória partilhada suficiente para o motor de colunas usar, pode ver este erro:
Insufficient shared memory for generating the columnar formats.
Pode resolver este problema especificando a quantidade de memória partilhada disponível para o contentor do AlloyDB Omni. A forma como o faz varia consoante o sistema operativo do anfitrião
Linux
Aumente o tamanho da partição /dev/shm
da máquina anfitriã através de uma técnica como a edição do ficheiro /etc/fstab
.
macOS
Instale um novo contentor do AlloyDB Omni, especificando um valor de memória partilhada maior para a flag --shm-size
.
Corrija o problema de colunas que não são preenchidas
Se as colunas não forem preenchidas no motor de colunas, uma das seguintes situações pode ser verdadeira:
As colunas que quer adicionar incluem um tipo de dados não suportado.
Os requisitos do motor de colunas não estão a ser cumpridos.
Para encontrar a causa deste problema, experimente o seguinte:
Confirme que as tabelas ou as vistas materializadas na nossa consulta estão no motor de colunas.
Valide a utilização do motor de colunas através da declaração
EXPLAIN
.
O que se segue?
Veja a lista completa de flags da base de dados do motor de colunas.
Saiba mais sobre a organização automática em colunas.