> ## 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.

# ajustes de sesión de optimize_and_compare_chain_*

> Ajustes de sesión de ClickHouse en el grupo generado 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"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estos ajustes están disponibles en [system.settings](/docs/es/reference/system-tables/settings) y se autogeneran a partir del [código fuente](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": "Una nueva configuración"}]}]} />

Propaga las comparaciones con constantes en cadenas AND para mejorar la capacidad de filtrado. Admite los operadores `<`, `<=`, `>`, `>=`, `=` y combinaciones de ellos. Por ejemplo, `(a < b) AND (b < c) AND (c < 5)` sería `(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": "Nueva configuración que limita el trabajo de la optimización `optimize_and_compare_chain` (medido en nodos del árbol de consulta procesados con hash) para que no llegue a dominar el análisis de consultas con muchísimas cadenas `AND` de comparaciones o cadenas `AND` muy grandes. El valor anterior `0` (ilimitado) reproduce el comportamiento anterior a la versión 26.7, en el que la optimización no tenía límite, por lo que `compatibility` configurado con una versión anterior sigue derivando predicados transitivos sin presupuesto. Establézcalo en `0` para desactivar el presupuesto."}]}]} />

Presupuesto de trabajo para la optimización `optimize_and_compare_chain` durante el análisis de consultas, medido por la cantidad de nodos del árbol de consulta para los que `getTreeHash` calcula el hash (el costo dominante de esta optimización). Una vez que una consulta ha calculado el hash de más nodos que este límite mientras aplica la optimización, deja de aplicarla durante el resto de la consulta. Esto limita el tiempo de análisis de consultas con muchísimas cadenas `AND` de comparaciones o cadenas `AND` muy grandes, en las que, de otro modo, la optimización podría llegar a dominar el análisis sin simplificar nada. Detenerse antes siempre es seguro: solo se renuncia a una optimización y nunca se alteran los resultados. Establézcalo en `0` para desactivar el presupuesto (ilimitado).
