Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão optimize_*

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

Tipo
Bool
Padrão
1

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

optimize_append_index

Tipo
Bool
Padrão
0

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

Tipo
Bool
Padrão
1

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

optimize_const_name_size

Tipo
Int64
Padrão
256
Histórico de versões
VersãoValor padrãoComentário
25.11256Substitui por um escalar e usa um hash como nome para constantes grandes (o tamanho é estimado pelo comprimento do nome)

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

Tipo
Bool
Padrão
1

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.51Reescreve tupleElement(dictGet(..., tuple_of_attrs, ...), N) em uma chamada dictGet de atributo único.

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

Tipo
Bool
Padrão
1

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

Tipo
Bool
Padrão
1

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:

optimize_dry_run_check_part

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.21Nova configuração

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.101Nova configuração.

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.11Otimiza expressões WHERE, PREWHERE, ON, HAVING e QUALIFY extraindo expressões comuns de disjunções de conjunções.
24.120Introduz uma configuração para otimizar expressões WHERE, PREWHERE, ON, HAVING e QUALIFY extraindo expressões comuns de disjunções de conjunções.

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
24.81Configuração habilitada por padrão

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.121Nova configuração

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

Tipo
Bool
Padrão
1

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

optimize_normalize_count_variants

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
21.31Reescrever funções de agregação semanticamente equivalentes a count() como count() por padrão

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

optimize_on_insert

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
21.11Ativa a otimização de dados em INSERT por padrão para proporcionar uma melhor experiência ao usuário

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:

SET optimize_on_insert = 1;

CREATE TABLE test1 (`FirstTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY FirstTable;

INSERT INTO test1 SELECT number % 2 FROM numbers(5);

SELECT * FROM test1;

SET optimize_on_insert = 0;

CREATE TABLE test2 (`SecondTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY SecondTable;

INSERT INTO test2 SELECT number % 2 FROM numbers(5);

SELECT * FROM test2;

Resultado:

┌─FirstTable─┐
│          0 │
│          1 │
└────────────┘

┌─SecondTable─┐
│           0 │
│           0 │
│           0 │
│           1 │
│           1 │
└─────────────┘

Observe que essa configuração influencia o comportamento da visão materializada.

optimize_prewhere_after_pushdown

Tipo
Bool
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
26.60Nova configuração que habilita uma segunda passagem de promoção de PREWHERE para mesclar à cadeia PREWHERE existente os filtros adicionados acima de uma etapa de leitura MergeTree por otimizações posteriores (pushdown de predicados por meio de JOIN, reescritas de projeção).

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.101Nova configuração

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

Tipo
Bool
Padrão
1

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

Tipo
Bool
Padrão
1

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

Tipo
Bool
Padrão
1

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

optimize_substitute_columns

Tipo
Bool
Padrão
0

Use restrições para substituição de colunas. O padrão é false.

Valores possíveis:

  • true, false

optimize_syntax_fuse_functions

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.31A otimização está pronta para uso em produção

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:

CREATE TABLE fuse_tbl(a Int8, b Int8) Engine = Log;
SET optimize_syntax_fuse_functions = 1;
EXPLAIN SYNTAX run_query_tree_passes = 1 SELECT sum(a), sum(b), count(b), avg(b) from fuse_tbl FORMAT TSVRaw;

Resultado:

SELECT
    sum(__table1.a) AS `sum(a)`,
    tupleElement(sumCount(__table1.b), 1) AS `sum(b)`,
    tupleElement(sumCount(__table1.b), 2) AS `count(b)`,
    divide(tupleElement(sumCount(__table1.b), 1), toFloat64(tupleElement(sumCount(__table1.b), 2))) AS `avg(b)`
FROM default.fuse_tbl AS __table1

optimize_throw_if_noop

Tipo
Bool
Padrão
0

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
24.21Otimiza 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')

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

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.41Remove os elementos finais de ORDER BY quando todas as chaves de GROUP BY já estiverem cobertas pelo prefixo de ORDER BY.

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

Tipo
Bool
Padrão
1

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

optimize_using_constraints

Tipo
Bool
Padrão
0

Use restrições para otimizar consultas. O padrão é false.

Valores possíveis:

  • true, false
Navigation