Para usar o mecanismo colunar ao usar o AlloyDB para PostgreSQL no Google Cloud, consulte Configurar o mecanismo colunar.
Para uma visão geral conceitual do mecanismo colunar do AlloyDB, consulte Sobre o mecanismo colunar do AlloyDB.
Ativar o mecanismo colunar
Para usar o mecanismo colunar em uma instância, defina a flag
google_columnar_engine.enabled
da instância como on
.
Para definir essa flag em uma 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 mecanismo colunar, siga as instruções na próxima seção antes de reiniciar o servidor de banco de dados. Caso contrário, siga as próximas duas etapas para reiniciar o servidor de banco de dados agora.
Configurar o tamanho do repositório de colunas
Enquanto o mecanismo colunar está ativado em uma instância, o AlloyDB aloca uma parte da memória da instância para armazenar os dados colunares. Dedicar RAM de alta velocidade ao repositório de colunas garante que o AlloyDB possa acessar os dados colunares o mais rápido possível.
Também é possível definir a alocação para um tamanho fixo e específico usando a flag
google_columnar_engine.memory_size_in_mb
.
Para definir essa flag em uma 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 do armazenamento da coluna, em megabytes.
Ativar a mesclagem vetorizada
O mecanismo colunar tem um recurso de mesclagem vetorizada que pode melhorar o desempenho das mesclagens aplicando o processamento vetorizado a consultas qualificadas.
Depois que você ativa a mesclagem vetorizada, o planejador de consultas do AlloyDB tem a opção de aplicar o operador de mesclagem vetorizada em vez do operador de mesclagem de hash padrão do PostgreSQL. O planejador toma essa decisão comparando o custo de execução da consulta usando qualquer um dos métodos.
Para ativar a mesclagem vetorizada em uma instância, defina a flag
google_columnar_engine.enable_vectorized_join
da instância como on
.
Para definir essa flag em uma instância, execute o comando ALTER SYSTEM
do PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
O AlloyDB aloca uma linha de execução para o recurso de junção
vetorizada por padrão. Aumente o número de linhas de execução disponíveis para esse recurso definindo a flag
google_columnar_engine.vectorized_join_threads
com um valor maior.
Atualizar manualmente o mecanismo colunar
Por padrão, quando ativado, o mecanismo colunar é configurado para atualizar automaticamente o repositório de colunas em segundo plano. Em algumas situações, como quando a atualização automática não atualiza uma relação com um grande número de blocos inválidos, talvez seja necessário atualizar manualmente o armazenamento colunar.
Para atualizar manualmente o mecanismo colunar, execute a seguinte consulta SQL:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Substitua TABLE_NAME
pelo nome da tabela ou da visualização materializada que você quer
atualizar manualmente.
Desativar o mecanismo colunar
Para desativar o mecanismo columbar em uma instância, defina a flag google_columnar_engine.enabled
como off
.
Para definir essa flag em uma instância, faça o seguinte:
Execute o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Resolver problemas do mecanismo colunar
Corrigir um erro de "memória compartilhada insuficiente"
Se você executar o AlloyDB Omni sem memória compartilhada suficiente para o uso do mecanismo colunar, poderá ver este erro:
Insufficient shared memory for generating the columnar formats.
Para resolver esse problema, especifique a quantidade de memória compartilhada disponível para o contêiner do AlloyDB Omni. A maneira de fazer isso varia de acordo com o sistema operacional do host.
Linux
Aumente o tamanho da partição /dev/shm
da máquina host usando uma técnica como editar o arquivo /etc/fstab
.
macOS
Instale um novo contêiner do AlloyDB Omni, especificando
um valor maior de memória compartilhada para a flag --shm-size
.
Corrigir colunas que não estão sendo preenchidas
Se as colunas não forem preenchidas no mecanismo colunar, uma das seguintes situações pode ser verdadeira:
As colunas que você quer adicionar incluem um tipo de dados não compatível.
Os requisitos do mecanismo colunar não estão sendo atendidos.
Para encontrar a causa desse problema, tente o seguinte:
Confirme se as tabelas ou visualizações materializadas na sua consulta estão no mecanismo colunar.
Verifique o uso do mecanismo de colunas usando a instrução
EXPLAIN
.
A seguir
Consulte a lista completa de flags de banco de dados do mecanismo colunar.
Saiba mais sobre a colunação automática.