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

optimize_aggregators_of_group_by_keys

Elimina agregadores min/max/any/anyLast de chaves de GROUP BY na seção SELECT

optimize_append_index

Use restrições para adicionar a condição do índice. O padrão é false. Valores possíveis:
  • true, false

optimize_arithmetic_operations_in_aggregate_functions

Mover operações aritméticas para fora das funções de agregação

optimize_const_name_size

Substitui por um escalar e usa um hash como nome para constantes grandes (o tamanho é estimado pelo comprimento do nome). Valores possíveis:
  • inteiro positivo - comprimento máximo do nome,
  • 0 — sempre,
  • inteiro negativo - nunca.

optimize_count_from_files

Ativa ou desativa a otimização da contagem do número de linhas em arquivos em diferentes formatos de entrada. Aplica-se às funções de tabela/motores file/s3/url/hdfs/azureBlobStorage. Valores possíveis:
  • 0 — Otimização desativada.
  • 1 — Otimização ativada.

optimize_dictget_tuple_element

Reescreve tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) em dictGet('dict', 'b', key) para evitar buscar atributos desnecessários do dicionário. Oferece suporte a acesso posicional (.1, .2, …) e nomeado (.b) e também se aplica a dictGetOrDefault quando o argumento padrão é uma tupla constante ou um tuple(...) de constantes.

optimize_distinct_in_order

Habilita a otimização de DISTINCT se algumas colunas do DISTINCT formarem um prefixo da ordenação. Por exemplo, um prefixo da chave de ordenação no MergeTree ou da instrução ORDER BY

optimize_distributed_group_by_sharding_key

Otimiza consultas GROUP BY sharding_key, evitando agregações custosas no servidor iniciador (o que reduz o uso de memória da consulta nesse servidor). Os seguintes tipos de consultas são suportados (assim como todas as combinações entre eles):
  • SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist
  • SELECT ... FROM dist GROUP BY sharding_key[, ...]
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
Os seguintes tipos de consultas não são suportados (o suporte a alguns deles pode ser adicionado posteriormente):
  • SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS
  • SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP
  • SELECT ... GROUP BY sharding_key[, ...] WITH CUBE
  • SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
Valores possíveis:
  • 0 — Desabilitado.
  • 1 — Habilitado.
Veja também:
No momento, isso requer optimize_skip_unused_shards, porque no futuro essa opção poderá ser habilitada por padrão e só funcionará corretamente se os dados tiverem sido inseridos por uma tabela Distributed, ou seja, se os dados forem distribuídos de acordo com sharding_key.

optimize_dry_run_check_part

Quando ativado, OPTIMIZE ... DRY RUN valida a parte resultante da mesclagem usando checkDataPart. Se a verificação falhar, uma exceção é lançada.

optimize_empty_string_comparisons

Converte expressões como col = ” ou ” = col para empty(col), e col != ” ou ” != col para notEmpty(col), apenas quando col é do tipo String ou FixedString.

optimize_extract_common_expressions

Permite extrair expressões comuns de disjunções em expressões WHERE, PREWHERE, ON, HAVING e QUALIFY. Uma expressão lógica como (A AND B) OR (A AND C) pode ser reescrita como A AND (B OR C), o que pode ajudar a aproveitar:
  • índices em expressões de filtro simples
  • otimização de CROSS para INNER JOIN

optimize_functions_to_subcolumns

Habilita ou desabilita a otimização ao transformar algumas funções em leituras de subcolunas. Isso reduz a quantidade de dados lidos. Estas funções podem ser transformadas: Valores possíveis:
  • 0 — Otimização desabilitada.
  • 1 — Otimização habilitada.

optimize_inverse_dictionary_lookup

Evite buscas inversas repetidas no dicionário usando buscas mais rápidas em um conjunto pré-computado de possíveis valores de chave.

optimize_multiif_to_if

Substitui ‘multiIf’ por ‘if’ quando há apenas uma condição.

optimize_normalize_count_variants

Reescrever funções de agregação semanticamente equivalentes a count() como count().

optimize_on_insert

Ativa ou desativa a transformação de dados antes da inserção, como se um merge tivesse sido feito neste bloco (de acordo com o mecanismo de tabela). Valores possíveis:
  • 0 — Desativado.
  • 1 — Ativado.
Exemplo A diferença entre ativado e desativado: Consulta:
Resultado:
Observe que essa configuração influencia o comportamento da visão materializada.

optimize_prewhere_after_pushdown

Execute uma segunda passagem de promoção de PREWHERE após otimizações posteriores do plano de consulta possivelmente terem adicionado filtros adicionais acima de uma etapa de leitura MergeTree (por exemplo, pushdown de predicados por meio de JOIN, reescritas de projeção). Quando já existe um PREWHERE, o novo filtro é mesclado a ele com AND, em vez de permanecer como uma etapa de filtro separada.

optimize_qbit_distance_function_reads

Substitui as funções de distância no tipo de dado QBit por equivalentes que leem do armazenamento apenas as colunas necessárias para o cálculo.

optimize_read_in_order

Habilita a otimização de ORDER BY em consultas SELECT ao ler dados de tabelas MergeTree. Valores possíveis:
  • 0 — a otimização de ORDER BY está desabilitada.
  • 1 — a otimização de ORDER BY está habilitada.
Veja também

optimize_respect_aliases

Se estiver definido como true, respeitará aliases em WHERE/GROUP BY/ORDER BY, o que ajudará na eliminação de partições/no uso de índices secundários/optimize_aggregation_in_order/optimize_read_in_order/optimize_trivial_count

optimize_sorting_by_input_stream_properties

Otimiza a ordenação com base nas propriedades de ordenação do fluxo de entrada

optimize_substitute_columns

Use restrições para substituição de colunas. O padrão é false. Valores possíveis:
  • true, false

optimize_syntax_fuse_functions

Permite combinar funções de agregação com o mesmo argumento. Reescreve consultas que contêm pelo menos duas funções de agregação sum, count ou avg com o mesmo argumento para sumCount. Valores possíveis:
  • 0 — Funções com o mesmo argumento não são combinadas.
  • 1 — Funções com o mesmo argumento são combinadas.
Exemplo Consulta:
Resultado:

optimize_throw_if_noop

Habilita ou desabilita o lançamento de uma exceção se uma consulta OPTIMIZE não realizar um merge. Por padrão, OPTIMIZE retorna com sucesso mesmo quando não faz nada. Essa configuração permite diferenciar essas situações e obter o motivo na mensagem de exceção. Valores possíveis:
  • 1 — O lançamento de exceção está habilitado.
  • 0 — O lançamento de exceção está desabilitado.

optimize_time_filter_with_preimage

Otimiza predicados Date e DateTime convertendo funções em comparações equivalentes, sem necessidade de conversão (ex.: toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')

optimize_truncate_order_by_after_group_by_keys

Remove os elementos finais de ORDER BY quando todas as chaves de GROUP BY já estiverem cobertas pelo prefixo de ORDER BY.

optimize_uniq_to_count

Reescreve uniq e suas variantes (exceto uniqUpTo) como count se a subconsulta tiver distinct ou uma cláusula group by.

optimize_using_constraints

Use restrições para otimizar consultas. O padrão é false. Valores possíveis:
  • true, false
Última modificação em 23 de julho de 2026