Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão de optimize_and_compare_chain_*

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

optimize_and_compare_chain

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

Propaga comparações com constantes em cadeias de AND para melhorar a capacidade de filtragem. Suporta os operadores <, <=, >, >=, = e combinações entre eles. Por exemplo, (a < b) AND (b < c) AND (c < 5) se tornaria (a < b) AND (b < c) AND (c < 5) AND indexHint(b < 5) AND indexHint(a < 5). As comparações derivadas são encapsuladas em indexHint: elas participam da análise de índices (chave primária, chave de partição, índices de salto) e reduzem o conjunto de leitura, mas não têm custo por linha e não afetam PREWHERE. Uma comparação derivada por meio de expressões de tabelas diferentes permanece executável ((t1.a < t2.b) AND (t2.b < 5) deriva a condição simples t1.a < 5): é a única condição que pode ser aplicada abaixo do join, onde filtra uma entrada do join que a cadeia original não consegue alcançar. Comparações derivadas que contradizem uma condição existente também são adicionadas como condições simples, de modo que o AND é reduzido a false.

optimize_and_compare_chain_max_hash_work

Tipo
UInt64
Padrão
5000000
Histórico de versões
VersãoValor padrãoComentário
26.75000000Nova configuração que limita o trabalho da otimização `optimize_and_compare_chain` (medido em nós da árvore de consulta com hash calculado) para que ela não passe a dominar a análise de consultas com cadeias `AND` de comparações muito numerosas ou muito grandes. O valor anterior `0` (ilimitado) reproduz o comportamento anterior à versão 26.7, em que a otimização não tinha limite; assim, `compatibility` definido para uma versão anterior continua derivando predicados transitivos sem um orçamento. Defina como `0` para desabilitar o orçamento.

Orçamento de trabalho da otimização optimize_and_compare_chain durante a análise da consulta, medido pelo número de nós da árvore de consulta cujo hash é calculado por getTreeHash (o custo dominante dessa otimização). Quando uma consulta tiver calculado o hash de mais nós do que esse valor ao aplicar a otimização, ela deixa de aplicá-la no restante da consulta. Isso limita o tempo de análise de consultas com cadeias AND de comparações muito numerosas ou muito grandes, nas quais a otimização poderia, de outra forma, dominar a análise sem simplificar nada. Interromper antes é sempre seguro: isso apenas abre mão de uma otimização e nunca altera os resultados. Defina como 0 para desabilitar o orçamento (ilimitado).

Navigation