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

# Configuraciones de sesión de materialize_statistics_on_insert_*

> Configuraciones de sesión de ClickHouse del grupo generado materialize_statistics_on_insert_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versión", "Valor predeterminado", "Comentario"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Historial de versiones
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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>;
};

Estas opciones de configuración están disponibles en [system.settings](/docs/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="materialize_statistics_on_insert">
  ## materialize\_statistics\_on\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Materializa de forma predeterminada las estadísticas de columnas durante INSERT en las tablas cuyo tamaño sea inferior a materialize_statistics_on_insert_max_table_size, para que la reordenación de joins basada en costes disponga de buenas estimaciones en tablas de dimensiones recién cargadas."}]}, {"id": "row-2","items": [{"label": "26.4"},{"label": "0"},{"label": "Deshabilita de forma predeterminada la creación de estadísticas durante INSERT; en su lugar, se basa en las fusiones"}]}, {"id": "row-3","items": [{"label": "24.6"},{"label": "1"},{"label": "Se añadió una nueva configuración para permitir deshabilitar la materialización de estadísticas durante INSERT"}]}]} />

Si está habilitado, los INSERT crean e insertan estadísticas. Si está deshabilitado, las estadísticas se crearán y almacenarán durante las fusiones o mediante MATERIALIZE STATISTICS explícito. Solo se ven afectadas las tablas cuyo tamaño actual, sumado al tamaño del bloque que se está escribiendo, no supere `materialize_statistics_on_insert_max_table_size`.

<div id="materialize_statistics_on_insert_max_table_size">
  ## materialize\_statistics\_on\_insert\_max\_table\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "26843545600"},{"label": "Nueva configuración: materializar estadísticas de columnas en INSERT solo para las tablas cuyo tamaño actual más el tamaño del bloque insertado sea inferior a este umbral. previous_value=0 (sin límite), por lo que `compatibility` con versiones anteriores a la 26.8 restaura el comportamiento previo (antes de esta PR no había límite de tamaño, por lo que los usuarios que vuelvan a habilitar explícitamente `materialize_statistics_on_insert` seguirán materializando estadísticas independientemente del tamaño de la tabla)."}]}]} />

Crea y almacena estadísticas de columnas en INSERT (consulta `materialize_statistics_on_insert`) solo para las tablas cuyo tamaño total actual de las partes activas en disco (comprimido, en bytes), sumado al tamaño sin comprimir en memoria del bloque que se está escribiendo, no supere este valor. El comportamiento se aplica por bloque escrito, no por INSERT: un único INSERT se divide en un bloque por partición (y, en el caso de las inserciones en streaming, en varios bloques), y cada uno se comprueba frente al tamaño de las partes que ya están activas, ya que las partes del INSERT en curso aún no lo están. Por tanto, una única carga masiva en una tabla vacía puede crear estadísticas para todas sus partes aunque su tamaño total supere el umbral; el límite se aplica a las inserciones posteriores. El uso del tamaño del bloque sin comprimir (el tamaño comprimido se desconoce antes de escribir la parte) hace que la comprobación sea deliberadamente conservadora en, como máximo, un bloque. Esto mantiene actualizadas las estadísticas de las tablas de dimensiones pequeñas, lo cual es importante para la reordenación de join basada en costes, y evita la sobrecarga por inserción en tablas de hechos grandes (sus estadísticas se crean durante las fusiones). `0` significa que no hay límite de tamaño.
