O Hologres oferece suporte a parâmetros Grand Unified Configuration (GUC) para controlar o comportamento de consultas, o gerenciamento de conexões, o desempenho e a segurança no nível da sessão ou do banco de dados.
Limites
Os parâmetros GUC não se aplicam a tabelas do sistema.
Referência de parâmetros GUC
Os parâmetros estão agrupados por função. A coluna Level indica onde configurar cada parâmetro: Session (entra em vigor imediatamente para a conexão atual) ou Database (entra em vigor após a reconexão).
Auto-analyze
Estes parâmetros controlam o recurso de auto-analyze, que coleta estatísticas automaticamente para manter a precisão dos planos de consulta.
|
Parameter |
Description |
Default |
Level |
|
|
Ativa ou desativa o auto-analyze. |
|
Session / Database |
|
|
Intervalo em que o Hologres verifica alterações nas tabelas internas e aciona o auto-analyze. |
|
Session / Database |
|
|
Intervalo em que o Hologres verifica alterações nas tabelas externas e aciona o auto-analyze. |
|
Session / Database |
|
|
Número máximo de linhas amostradas por execução do auto-analyze. |
|
Session / Database |
|
|
Atraso máximo antes que o auto-analyze capture alterações feitas por APIs fixas. |
|
Session / Database |
Consulta de tabela externa do MaxCompute
Estes parâmetros ajustam a consulta de tabelas externas do MaxCompute pelo Hologres. Para obter orientações sobre ajustes, consulte Otimizar o desempenho de consulta para tabelas externas do MaxCompute.
|
Parameter |
Description |
Default |
Valid values |
Level |
|
|
Número máximo de partições acessadas por consulta. O valor |
|
|
Session / Database |
|
|
Quantidade de linhas buscadas por lote ao examinar uma tabela do MaxCompute. |
|
— |
Session / Database |
|
|
Tamanho da divisão de dados (em MB) para leituras paralelas. Evite definir valores excessivamente grandes. |
|
— |
Session / Database |
|
|
Grau máximo de paralelismo (DOP) para execução de consultas. |
Número de núcleos de CPU (máximo de |
— |
Session / Database |
|
|
DOP máximo para operações DML em tabelas externas. |
|
— |
Session / Database |
|
|
Permite ler arquivos ORC do MaxCompute com o leitor nativo do Hologres. |
|
— |
Session / Database |
Cache de resultados
|
Parameter |
Description |
Default |
Level |
|
|
Habilita o cache de resultados para consultas idênticas. Desative apenas se resultados obsoletos causarem problemas. |
|
Session / Database |
Otimização de consulta de tabela interna
Estes parâmetros ajustam o otimizador de consultas para tabelas internas. Para mais detalhes, consulte Otimizar o desempenho de consultas.
|
Parameter |
Description |
Default |
Level |
|
|
Controla como o otimizador busca a ordem ideal de junção. Defina como |
|
Session |
|
|
Força a agregação em vários estágios. Ative para consultas com |
|
Session |
Segurança e criptografia
|
Parameter |
Description |
Default |
Level |
|
|
Ativa a mascaração de dados. Configure no nível do banco de dados para aplicar a definição a todas as sessões. |
|
Database (recommended) |
|
|
Ativa e configura a criptografia de dados em repouso. Configure no nível do banco de dados. |
|
Database (recommended) |
Timeouts de consulta e conexão
Configure idle_session_timeout no nível do banco de dados. O valor padrão 0 desativa a liberação automática de conexões ociosas, o que pode exaurir o limite de conexões e causar vazamentos.
|
Parameter |
Description |
Default |
Level |
|
|
Cancela qualquer consulta ativa executada além da duração especificada. Valor em milissegundos; |
|
Session (recommended) |
|
|
Encerra sessões ociosas em transações abertas além da duração especificada. Valor em milissegundos; |
|
Database (recommended) |
|
|
Libera conexões inativas além da duração especificada. Valor em milissegundos; |
|
Database (recommended) |
Conversão de tipo de dados
|
Parameter |
Description |
Default |
Level |
|
|
Alterna a função de conversão especificada ( |
— |
Session / Database |
Exemplo: Para estender o intervalo de anos do to_char:
set hg_experimental_functions_use_pg_implementation = 'to_char';
Funções de agregação
|
Parameter |
Description |
Default |
Valid values |
Level |
|
|
Controla a precisão e o uso de memória da função APPROX_COUNT_DISTINCT. Valores maiores reduzem a margem de erro, mas aumentam o consumo de memória. |
|
|
Session / Database |
Fuso horário
|
Parameter |
Description |
Default |
Level |
|
|
Define o fuso horário da sessão ou do banco de dados. |
|
Session / Database |
Operações de tabela
|
Parameter |
Description |
Default |
Level |
|
|
Quando ativado, o comando CREATE TABLE LIKE copia o esquema e as propriedades da tabela (chave primária, índice). Se desativado, copia apenas o esquema. |
|
Session / Database |
|
|
Define a política de resolução de conflitos do INSERT ON CONFLICT para manter a primeira ocorrência quando um lote contém valores duplicados de chave primária. |
|
Session / Database |
|
|
Define a política de resolução do INSERT ON CONFLICT para manter a última ocorrência quando um lote contém valores duplicados de chave primária. |
|
Session / Database |
Replicação e monitoramento
|
Parameter |
Description |
Default |
Level |
|
|
Ativa a replicação no nível de shard. |
|
Session / Database |
|
|
Exibe o ID da consulta no campo NOTICE do cliente. Funciona para clientes HoloWeb e PostgreSQL. Em JDBC, recupere o ID da consulta com |
|
Session / Database |
Verificar o valor atual de um parâmetro GUC
Execute SHOW para verificar o valor atual ou padrão de um parâmetro:
-- Check whether auto-analyze is enabled
SHOW hg_enable_start_auto_analyze_worker;
-- Check the MaxCompute partition limit
SHOW hg_foreign_table_max_partition_limit;
Configurar parâmetros GUC
Configure os parâmetros GUC no nível da sessão ou do banco de dados, conforme o escopo do parâmetro e o caso de uso. Nem todos os parâmetros exigem definição no nível do banco de dados.
Nível de sessão
A instrução SET configura um parâmetro apenas para a conexão atual. A configuração é descartada ao fechar a conexão. Use a configuração no nível da sessão quando o comportamento deve aplicar-se a uma consulta ou carga de trabalho específica, e não globalmente.
Sintaxe:
set <GUC_name> = <value>;
Exemplos:
-- Enable auto-analyze for this session
set hg_enable_start_auto_analyze_worker = on;
-- Limit MaxCompute partition hits to 1024 for this session
set hg_foreign_table_max_partition_limit = 1024;
Nível de banco de dados
A instrução ALTER DATABASE configura um parâmetro para todas as conexões futuras ao banco de dados especificado. A configuração entra em vigor após fechar e reabrir a conexão. Ao criar um novo banco de dados, configure explicitamente seus parâmetros GUC, pois eles não são herdados automaticamente.
Sintaxe:
alter database <db_name> set <GUC_name> = <value>;
Exemplos:
-- Enable auto-analyze for all connections to testdb
alter database testdb set hg_enable_start_auto_analyze_worker = on;
-- Limit MaxCompute partition hits to 1024 for all connections to testdb
alter database testdb set hg_foreign_table_max_partition_limit = 1024;
-- Enable data masking for all connections to a database
alter database <db_name> set hg_anon_enable = on;
-- Enable data encryption for all connections to a database
alter database <db_name> set hg_experimental_encryption_options='AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx';
-- Release idle connections after 10 minutes (600,000 ms) of inactivity
alter database <db_name> SET idle_session_timeout = 600000;