optimize_aggregators_of_group_by_keys
optimize_append_index
false.
Valores possíveis:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- inteiro positivo - comprimento máximo do nome,
- 0 — sempre,
- inteiro negativo - nunca.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Valores possíveis:
- 0 — Otimização desativada.
- 1 — Otimização ativada.
optimize_dictget_tuple_element
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
optimize_distributed_group_by_sharding_key
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 distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — Desabilitado.
- 1 — Habilitado.
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
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
optimize_extract_common_expressions
(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
- length para ler a subcoluna size0.
- empty para ler a subcoluna size0.
- notEmpty para ler a subcoluna size0.
- isNull para ler a subcoluna null.
- isNotNull para ler a subcoluna null.
- count para ler a subcoluna null.
- mapKeys para ler a subcoluna keys.
- mapValues para ler a subcoluna values.
- 0 — Otimização desabilitada.
- 1 — Otimização habilitada.
optimize_inverse_dictionary_lookup
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — Desativado.
- 1 — Ativado.
optimize_prewhere_after_pushdown
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
QBit por equivalentes que leem do armazenamento apenas as colunas necessárias para o cálculo.
optimize_read_in_order
- 0 — a otimização de
ORDER BYestá desabilitada. - 1 — a otimização de
ORDER BYestá habilitada.
optimize_respect_aliases
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
Valores possíveis:
- true, false
optimize_syntax_fuse_functions
- 0 — Funções com o mesmo argumento não são combinadas.
- 1 — Funções com o mesmo argumento são combinadas.
optimize_throw_if_noop
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
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
uniq e suas variantes (exceto uniqUpTo) como count se a subconsulta tiver distinct ou uma cláusula group by.
optimize_using_constraints
false.
Valores possíveis:
- true, false