> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão de optimize_and_compare_chain_*

> Configurações de sessão do ClickHouse no grupo gerado optimize_and_compare_chain_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são autogeradas a partir do [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="optimize_and_compare_chain">
  ## optimize\_and\_compare\_chain
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Nova 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 (b < 5) AND (a < 5)`.

<div id="optimize_and_compare_chain_max_hash_work">
  ## optimize\_and\_compare\_chain\_max\_hash\_work
</div>

<SettingsInfoBlock type="UInt64" default_value="5000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "5000000"},{"label": "Nova 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).
