Manter a atualização dos dados do armazenamento de colunas na memória

Selecione uma versão da documentação:

Nesta página, descrevemos como manter a atualização dos dados no armazenamento de colunas do mecanismo colunar no AlloyDB Omni em um contêiner.

À medida que as linhas da tabela são adicionadas, excluídas ou atualizadas, o mecanismo colunar não atualiza imediatamente os dados no armazenamento de colunas. Em vez disso, ele marca o conteúdo afetado no armazenamento de colunas como inválido, e as consultas são planejadas e executadas usando dados orientados a colunas do armazenamento de colunas e dados orientados a linhas do cache de linhas e do armazenamento de banco de dados.

Com o tempo, à medida que mais e mais blocos de dados se tornam inválidos, as melhorias de desempenho de consultas fornecidas pelo mecanismo colunar são reduzidas a ponto de os dados colunares precisarem ser atualizados para recuperar as melhorias de desempenho de consultas. Quando esse limite de atualização é atingido, o mecanismo colunar usa um job em segundo plano para atualizar os dados inválidos no armazenamento de colunas. Por padrão, o mecanismo colunar usa um limite de atualização de 50, indicando que o conteúdo fornecido no armazenamento de colunas é marcado para atualização quando 50% do conteúdo se torna inválido. É possível mudar esse limite de atualização para ajustar a sobrecarga da atualização automática e, potencialmente, ter um melhor desempenho de consulta contínuo para a carga de trabalho do aplicativo.

Além disso, é possível atualizar manualmente os dados de uma tabela no armazenamento de colunas a qualquer momento. Normalmente, você realiza uma atualização manual quando quer que as mudanças em uma tabela sejam refletidas no armazenamento de colunas o mais rápido possível após fazer as mudanças.

Mudar o limite de atualização do mecanismo colunar

Edite o valor da flag de banco de dados google_columnar_engine.refresh_threshold_percentage para mudar o limite de atualização do mecanismo colunar.

    ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;

THRESHOLD: um valor inteiro entre 1 e 100. Esse valor especifica a porcentagem de blocos de dados no conteúdo que precisam se tornar inválidos para que o conteúdo seja marcado para atualização.

Atualizar manualmente os dados de uma tabela no armazenamento de colunas

Execute a função SQL google_columnar_engine_refresh para atualizar manualmente os dados de uma tabela no armazenamento de colunas na memória.

SELECT google_columnar_engine_refresh(TABLE_NAME);

TABLE_NAME: uma string que contém o nome da tabela ou da visualização materializada. Se a tabela ou a visualização estiver em um esquema diferente de public, especifique o nome do esquema usando o formato SCHEMA_NAME.TABLE_NAME—por exemplo, myschema.mytable.