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

max_temporary_columns

O número máximo de colunas temporárias que devem ser mantidas simultaneamente na RAM durante a execução de uma consulta, incluindo colunas constantes. Se uma consulta gerar um número de colunas temporárias em memória maior que o especificado como resultado de um cálculo intermediário, uma exceção será lançada.
Essa configuração é útil para evitar consultas excessivamente complexas.
O valor 0 significa sem limite.

max_temporary_data_on_disk_size_for_query

A quantidade máxima de dados consumidos por arquivos temporários em disco, em bytes, por todas as consultas em execução simultânea. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)

max_temporary_data_on_disk_size_for_user

A quantidade máxima de dados consumidos por arquivos temporários em disco, em bytes, para todas as consultas de usuário em execução simultânea. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)

max_temporary_non_const_columns

Assim como max_temporary_columns, este é o número máximo de colunas temporárias que devem ser mantidas na RAM simultaneamente ao executar uma consulta, sem contar as colunas constantes.
Colunas constantes são formadas com bastante frequência ao executar uma consulta, mas exigem praticamente zero recursos computacionais.

max_temporary_table_memory_usage

O número máximo de bytes de memória que uma tabela temporária com o motor Memory pode armazenar. Aplica-se a tabelas criadas com CREATE TEMPORARY TABLE, incluindo o motor de tabela temporária padrão (consulte default_temporary_table_engine), e é contabilizado da mesma forma que total_bytes em system.tables. O limite é verificado em cada INSERT na tabela (incluindo CREATE TEMPORARY TABLE ... AS SELECT), enquanto os dados estão sendo recebidos e novamente antes de serem adicionados: se a tabela for exceder o limite, o INSERT lança uma exceção com o código de erro TOO_MANY_BYTES e os dados não são adicionados. Um INSERT que grava com várias threads (consulte max_insert_threads) adiciona os dados de cada thread separadamente; assim, os dados de algumas threads podem já ter sido adicionados quando outra lançar a exceção, mas a tabela nunca excede o limite. O valor é obtido das configurações da consulta INSERT. O limite também é verificado após uma mutação (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN etc.), com o valor obtido das configurações da consulta ALTER: se os dados alterados forem exceder o limite, a mutação lança uma exceção com o código de erro TOO_MANY_BYTES e os dados permanecem inalterados. Observe que a configuração max_bytes_to_keep do motor Memory funciona de outra forma: ela remove os dados mais antigos em vez de rejeitar os novos. Se ambas estiverem definidas, a evicção é aplicada primeiro. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)

max_temporary_table_size_bytes_compressed

O tamanho máximo, em bytes, dos dados em disco (comprimidos) de uma tabela temporária com um motor da família MergeTree. Aplica-se a tabelas criadas com CREATE TEMPORARY TABLE e é calculado da mesma forma que total_bytes em system.tables, ou seja, como a soma dos tamanhos das partes de dados ativas. O limite é verificado a cada INSERT na tabela (incluindo CREATE TEMPORARY TABLE ... AS SELECT) antes que cada nova parte de dados seja confirmada: se a tabela for exceder o limite, o INSERT lança uma exceção com o código de erro TOO_MANY_BYTES e a parte não é adicionada. As partes confirmadas anteriormente pelo mesmo INSERT permanecem na tabela, como acontece com qualquer outro erro durante um INSERT de vários blocos. O valor é obtido das configurações da consulta INSERT. As operações que adicionam partes existentes à tabela são limitadas da mesma forma, com o valor obtido das configurações da respectiva consulta: ATTACH PART, ATTACH PARTITION, ATTACH PARTITION ... FROM, REPLACE PARTITION ... FROM e CREATE TEMPORARY TABLE ... CLONE AS. Essas operações são rejeitadas por completo, a menos que não aumentem o tamanho da tabela. No caso de ATTACH PARTITION, a verificação é feita uma única vez para todas as partes antes que sejam anexadas; por isso, gravações executadas simultaneamente podem fazer com que a tabela ultrapasse ligeiramente o limite. As partes gravadas por mesclagens e mutações em segundo plano (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN etc.) não são verificadas; portanto, uma mutação que aumente o tamanho dos dados pode fazer com que a tabela ultrapasse o limite. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)

max_temporary_table_size_bytes_uncompressed

O tamanho máximo, em bytes, dos dados não comprimidos de uma única tabela temporária com um motor da família MergeTree. Aplica-se a tabelas criadas com CREATE TEMPORARY TABLE e é calculado da mesma forma que total_bytes_uncompressed em system.tables. O limite é verificado da mesma forma que max_temporary_table_size_bytes_compressed. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)

max_temporary_tables

O número máximo de tabelas temporárias que podem existir simultaneamente em uma sessão. Apenas as tabelas criadas com CREATE TEMPORARY TABLE são contabilizadas; não entram na contagem as tabelas com dados externos enviados com uma consulta nem as tabelas temporárias criadas internamente para GLOBAL IN / GLOBAL JOIN ou para CTEs materializadas. O limite é verificado sempre que uma nova tabela temporária é criada, e uma exceção com o código de erro TOO_MANY_TABLES é lançada se a sessão já tiver atingido esse número de tabelas temporárias. Substituir uma tabela temporária existente com CREATE OR REPLACE TEMPORARY TABLE não aumenta o número de tabelas e é sempre permitido. Valores possíveis:
  • Inteiro positivo.
  • 0 — ilimitado (padrão)