Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão max_bytes_*

Essas configurações estão disponíveis em system.settings e são autogeradas a partir do código-fonte.

max_bytes_before_external_group_by

Tipo
UInt64
Padrão
0

Valor padrão no Cloud: metade da memória por réplica.

Ativa ou desativa a execução de cláusulas GROUP BY em memória externa. (Consulte GROUP BY em memória externa)

Valores possíveis:

  • Volume máximo de RAM (em bytes) que pode ser usado por uma única operação de GROUP BY.
  • 0GROUP BY em memória externa desativado.

max_bytes_before_external_join

Tipo
UInt64
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
26.40Nova configuração para controlar o spill automático de hash join em disco. Um valor diferente de zero habilita o spill e define o limite em bytes.

Se for definido com um valor diferente de zero e join_algorithm for hash, parallel_hash, default ou auto, o hash join será convertido automaticamente em grace hash join para permitir o spill em disco quando os dados do lado direito excederem essa quantidade de bytes. Quando definido como 0 (padrão), esse limite absoluto em bytes fica desabilitado, mas o spill automático ainda pode ocorrer por meio de max_bytes_ratio_before_external_join (cujo valor padrão é 0.5); defina ambos como 0 para desabilitar completamente o spill automático. Isso impede a otimização de leitura read in order por meio de join.

max_bytes_before_external_sort

Tipo
UInt64
Padrão
0

Valor padrão no Cloud: metade da memória por réplica.

Habilita ou desabilita a execução de cláusulas ORDER BY na memória externa. Consulte Detalhes de implementação do ORDER BY Se o uso de memória durante a operação ORDER BY exceder esse limite em bytes, o modo de "ordenação externa" (gravar dados em disco) será ativado.

Valores possíveis:

  • Volume máximo de RAM (em bytes) que pode ser usado por uma única operação ORDER BY. O valor recomendado é metade da memória disponível no sistema
  • 0ORDER BY na memória externa desabilitado.

max_bytes_before_remerge_sort

Tipo
UInt64
Padrão
1000000000

No caso de ORDER BY com LIMIT, quando o uso de memória for maior que o limite especificado, execute etapas adicionais de mesclagem de blocos antes da mesclagem final para manter apenas as primeiras LIMIT linhas.

max_bytes_for_lazy_final

Tipo
UInt64
Padrão
256000000
Histórico de versões
VersãoValor padrãoComentário
26.4256000000Nova configuração para o número máximo de bytes no conjunto para a otimização lazy do FINAL

Número máximo de bytes no conjunto para a otimização lazy do FINAL. Se esse limite for excedido, volta para o FINAL normal.

max_bytes_in_distinct

Tipo
UInt64
Padrão
0

O número máximo de bytes do estado (em bytes não comprimidos) na memória usado por uma tabela hash ao utilizar DISTINCT.

max_bytes_in_join

Tipo
UInt64
Padrão
0

O tamanho máximo, em bytes, da estrutura de dados do lado direito (geralmente, uma tabela hash) usada em junções entre tabelas.

Essa configuração se aplica às operações SELECT … JOIN e ao Join table engine.

Se uma consulta contiver várias junções, o ClickHouse verificará essa configuração para cada resultado intermediário. Quando o limite é atingido, a ação depende do join_algorithm escolhido — consulte essa configuração para ver o comportamento de cada algoritmo (spill, re-partition, switch ou throw/break, conforme join_overflow_mode).

Valores possíveis:

  • Inteiro positivo.
  • 0 — O controle de memória está desabilitado.

max_bytes_in_set

Tipo
UInt64
Padrão
0

O número máximo de bytes (de dados não comprimidos) usados por um conjunto criado a partir de uma subconsulta na cláusula IN.

max_bytes_ratio_before_external_group_by

Tipo
Double
Padrão
0.5
Histórico de versões
VersãoValor padrãoComentário
25.10.5Ativar o spill automático para disco por padrão.
24.120Nova configuração.

A razão da memória disponível que pode ser usada pelo GROUP BY. Ao atingir esse limite, a memória externa é usada para agregação.

Por exemplo, se definido como 0.6, o GROUP BY permitirá usar 60% da memória disponível (para servidor/usuário/merges) no início da execução; depois disso, começará a usar agregação externa.

max_bytes_ratio_before_external_join

Tipo
Double
Padrão
0.5
Histórico de versões
VersãoValor padrãoComentário
26.50.5Nova configuração: razão da memória disponível usada como limiar para spill em hash join. Habilitada por padrão em `0.5`, espelhando `max_bytes_ratio_before_external_group_by` e `max_bytes_ratio_before_external_sort`. Combinada com o valor absoluto `max_bytes_before_external_join` (o menor dos dois se aplica).

A razão da memória disponível que pode ser usada pelo JOIN. Quando esse limite é atingido, o hash join será convertido em grace hash join para gravar em disco os dados do lado direito.

Por exemplo, se definido como 0.6, o JOIN permitirá usar 60% da memória disponível (para servidor/usuário/merges) para a tabela hash do lado direito no início da execução; depois disso, começará a gravar em disco.

Se max_bytes_before_external_join e max_bytes_ratio_before_external_join estiverem ambos definidos, será usado o menor limiar resultante. Se a razão for 0, somente a configuração absoluta se aplica.

Só tem efeito quando join_algorithm é hash, parallel_hash, default ou auto e um caminho temporário de dados está configurado.

max_bytes_ratio_before_external_sort

Tipo
Double
Padrão
0.5
Histórico de versões
VersãoValor padrãoComentário
25.10.5Habilita o spill automático em disco por padrão.
24.120Nova configuração.

A razão da memória disponível que pode ser usada pelo ORDER BY. Quando esse limite é atingido, a ordenação externa é usada.

Por exemplo, se definido como 0.6, o ORDER BY permitirá usar 60% da memória disponível (para servidor/usuário/merges) no início da execução; depois disso, começará a usar ordenação externa.

Observe que max_bytes_before_external_sort continua sendo respeitado; o spill em disco será feito apenas se o bloco de ordenação for maior que max_bytes_before_external_sort.

max_bytes_to_read

Tipo
UInt64
Padrão
0

O número máximo de bytes (de dados não comprimidos) que pode ser lido de uma tabela ao executar uma consulta. A restrição é verificada para cada fragmento de dados processado, aplicada apenas à expressão de tabela mais profunda e, ao ler de um servidor remoto, verificada apenas no servidor remoto.

max_bytes_to_read_leaf

Tipo
UInt64
Padrão
0

O número máximo de bytes (de dados não comprimidos) que podem ser lidos de uma tabela local em um nó folha ao executar uma consulta distribuída. Embora consultas distribuídas possam emitir várias subconsultas para cada shard (folha), esse limite será verificado apenas no estágio de leitura nos nós folha e será ignorado no estágio de mesclagem dos resultados no nó raiz.

Por exemplo, um cluster consiste em 2 shards, e cada shard contém uma tabela com 100 bytes de dados. Uma consulta distribuída que deve ler todos os dados de ambas as tabelas com a configuração max_bytes_to_read=150 falhará, pois o total será de 200 bytes. Uma consulta com max_bytes_to_read_leaf=150 terá êxito, já que os nós folha lerão no máximo 100 bytes.

A restrição é verificada para cada fragmento de dados processado.

max_bytes_to_sort

Tipo
UInt64
Padrão
0

O número máximo de bytes antes da ordenação. Se for necessário processar, na operação ORDER BY, mais bytes não comprimidos do que a quantidade especificada, o comportamento será determinado por sort_overflow_mode, que por padrão é definido como throw.

max_bytes_to_transfer

Tipo
UInt64
Padrão
0

O número máximo de bytes (dados não comprimidos) que podem ser transferidos para um servidor remoto ou salvos em uma tabela temporária quando a cláusula GLOBAL IN/JOIN é executada.

Navigation