max_bytes_before_external_group_by
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.
0—GROUP BYem memória externa desativado.
Se o uso de memória durante operações de GROUP BY exceder esse limite em bytes,
ative o modo de agregação externa (gravando os dados em disco).O valor recomendado é metade da memória disponível no sistema.
max_bytes_before_external_join
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
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
0—ORDER BYna memória externa desabilitado.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
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
max_bytes_ratio_before_external_group_by
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
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
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
max_bytes_to_read_leaf
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.
Essa configuração é instável com
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode, que por padrão é definido como throw.