> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración de la sesión

> Configuración que se encuentra en la tabla ``system.settings``.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  const cells = [["Type", <Badge color="surface">{type}</Badge>], ["Default value", <Badge color="surface">{default_value}</Badge>]];
  if (changeable_without_restart) {
    const isYes = String(changeable_without_restart).trim().toLowerCase() === "yes";
    const badge = isYes ? <Badge icon="check" stroke color="green" size="sm">Yes</Badge> : <Badge icon="x" stroke color="red" size="sm">No</Badge>;
    cells.push(["Changeable without restart", badge]);
  }
  return <table>
      <thead>
        <tr>
          {cells.map(([h]) => <th key={h}>{h}</th>)}
        </tr>
      </thead>
      <tbody>
        <tr>
          {cells.map(([h, v]) => <td key={h}>{v}</td>)}
        </tr>
      </tbody>
    </table>;
};

export const CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'ClickHouse Cloud only'}
        </div>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Experimental feature. <u><a href="/docs/beta-and-experimental-features#experimental-features">Learn more.</a></u>
        </div>;
};

Todos los ajustes que aparecen a continuación también están disponibles en la tabla [system.settings](/es/reference/system-tables/settings). Estos ajustes se generan automáticamente a partir del [código fuente](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="add_http_cors_header">
  ## add\_http\_cors\_header
</div>

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

Escribe la cabecera CORS HTTP adicional.

<div id="additional_result_filter">
  ## additional\_result\_filter
</div>

Una expresión de filtrado adicional que se aplica al resultado de la consulta `SELECT`.
Esta configuración no se aplica a ninguna subconsulta.

**Ejemplo**

```sql theme={null}
INSERT INTO table_1 VALUES (1, 'a'), (2, 'bb'), (3, 'ccc'), (4, 'dddd');
SElECT * FROM table_1;
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 2 │ bb   │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

```sql theme={null}
SELECT *
FROM table_1
SETTINGS additional_result_filter = 'x != 2'
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

<div id="additional_table_filters">
  ## additional\_table\_filters
</div>

<SettingsInfoBlock type="Map" default_value="{}" />

Una expresión de filtro adicional que se aplica tras leer
de la tabla especificada.

**Ejemplo**

```sql theme={null}
INSERT INTO table_1 VALUES (1, 'a'), (2, 'bb'), (3, 'ccc'), (4, 'dddd');
SELECT * FROM table_1;
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 2 │ bb   │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

```sql theme={null}
SELECT *
FROM table_1
SETTINGS additional_table_filters = {'table_1': 'x != 2'}
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

<div id="aggregate_function_input_format">
  ## aggregate\_function\_input\_format
</div>

<SettingsInfoBlock type="AggregateFunctionInputFormat" default_value="state" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "state"},{"label": "Nueva configuración para controlar el formato de entrada de AggregateFunction durante las operaciones INSERT. El valor de la configuración se establece en state de forma predeterminada"}]}]} />

Formato de entrada de AggregateFunction durante las operaciones INSERT.

Valores posibles:

* `state` — Cadena binaria con el estado serializado (valor predeterminado). Este es el comportamiento predeterminado, en el que se esperan valores de AggregateFunction como datos binarios.
* `value` — El formato espera un único valor del argumento de la función de agregación o, en el caso de varios argumentos, una tupla con ellos. Se deserializarán mediante el IDataType o DataTypeTuple correspondiente y luego se agregarán para formar el estado.
* `array` — El formato espera un Array de valores, como se describe en la opción `value` anterior. Todos los elementos del array se agregarán para formar el estado.

**Ejemplos**

Para una tabla con la estructura:

```sql theme={null}
CREATE TABLE example (
    user_id UInt64,
    avg_session_length AggregateFunction(avg, UInt32)
);
```

Con `aggregate_function_input_format = 'value'`:

```sql theme={null}
INSERT INTO example FORMAT CSV
123,456
```

Con `aggregate_function_input_format = 'array'`:

```sql theme={null}
INSERT INTO example FORMAT CSV
123,"[456,789,101]"
```

Nota: Los formatos `value` y `array` son más lentos que el formato `state` predeterminado, ya que requieren crear y agregar valores durante la inserción.

<div id="aggregate_functions_null_for_empty">
  ## aggregate\_functions\_null\_for\_empty
</div>

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

Habilita o deshabilita la reescritura de todas las funciones de agregación de una consulta, añadiéndoles el sufijo [-OrNull](/es/reference/functions/aggregate-functions/combinators#-ornull). Actívelo para lograr compatibilidad con el estándar SQL.
Se implementa mediante la reescritura de consultas (de forma similar al ajuste [count\_distinct\_implementation](#count_distinct_implementation)) para obtener resultados coherentes en consultas distribuidas.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

**Ejemplo**

Considere la siguiente consulta con funciones de agregación:

```sql theme={null}
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;
```

Con `aggregate_functions_null_for_empty = 0`, se produciría:

```text theme={null}
┌─SUM(-1)─┬─MAX(0)─┐
│       0 │      0 │
└─────────┴────────┘
```

Con `aggregate_functions_null_for_empty = 1`, el resultado sería:

```text theme={null}
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│          NULL │         NULL │
└───────────────┴──────────────┘
```

<div id="aggregation_in_order_max_block_bytes">
  ## aggregation\_in\_order\_max\_block\_bytes
</div>

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

Tamaño máximo del bloque, en bytes, acumulado durante la agregación en el orden de la clave primaria. Un tamaño de bloque menor permite paralelizar más la etapa final de combinación de la agregación.

<div id="aggregation_memory_efficient_merge_threads">
  ## aggregation\_memory\_efficient\_merge\_threads
</div>

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

Número de hilos que se deben usar para fusionar los resultados intermedios de agregación en el modo de uso eficiente de memoria. Cuanto mayor sea, más memoria se consumirá. 0 significa lo mismo que 'max\_threads'.

<div id="ai_function_max_api_calls_per_query">
  ## ai\_function\_max\_api\_calls\_per\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Número máximo de solicitudes HTTP que las funciones de IA pueden realizar por consulta. Establezca 0 para desactivarlo.

<div id="ai_function_max_input_tokens_per_query">
  ## ai\_function\_max\_input\_tokens\_per\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "Nuevo ajuste"}]}]} />

Número máximo total de tokens de entrada (prompt) en todas las llamadas a la API de la función de IA dentro de una sola consulta. Se contabiliza de forma acumulativa a partir de las respuestas del proveedor. Tenga en cuenta que este límite puede superarse por el equivalente a los tokens de entrada de una llamada, ya que el número de tokens de entrada de una llamada no se conoce de antemano. Establézcalo en 0 para desactivarlo.

<div id="ai_function_max_output_tokens_per_query">
  ## ai\_function\_max\_output\_tokens\_per\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "500000"},{"label": "Nueva configuración"}]}]} />

Número máximo total de tokens de salida (completion) en todas las llamadas a la API de la función de IA dentro de una sola consulta. Se contabiliza de forma acumulativa a partir de las respuestas del proveedor. Tenga en cuenta que este límite puede superarse en el equivalente a los tokens de salida de una llamada, ya que el número de tokens de salida de una llamada no se conoce de antemano. Establezca 0 para desactivarlo.

<div id="ai_function_max_retries">
  ## ai\_function\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Número máximo de reintentos ante errores transitorios para cada solicitud individual a la API. Cada reintento usa backoff exponencial a partir de `ai_function_retry_initial_delay_ms`.

<div id="ai_function_request_timeout_sec">
  ## ai\_function\_request\_timeout\_sec
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "60"},{"label": "Nueva configuración"}]}]} />

Tiempo de espera, en segundos, para cada solicitud HTTP realizada por las funciones de IA (completions de chat con IA y llamadas a la API de embedding). Si una solicitud no se completa dentro de este plazo, se considera fallida y puede reintentarse según `ai_function_max_retries`.

<div id="ai_function_retry_initial_delay_ms">
  ## ai\_function\_retry\_initial\_delay\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

Retraso inicial, en milisegundos, antes del primer reintento de una solicitud fallida a la API de una función de IA. El retraso se duplica en cada intento posterior (backoff exponencial). Por ejemplo, con la configuración predeterminada: 1000ms, 2000ms, 4000ms.

<div id="ai_function_throw_on_error">
  ## ai\_function\_throw\_on\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si se establece en true (valor predeterminado), una llamada a una función de IA que falla de forma permanente tras agotar todos los reintentos aborta la consulta con una excepción. Si se establece en false, la fila con error recibe el valor predeterminado del tipo de columna (cadena vacía para String) y el procesamiento continúa.

<div id="ai_function_throw_on_quota_exceeded">
  ## ai\_function\_throw\_on\_quota\_exceeded
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva opción"}]}]} />

Si es true (valor predeterminado), al superar un límite de QUOTA de una función de IA (`ai_function_max_input_tokens_per_query`, `ai_function_max_output_tokens_per_query` o `ai_function_max_api_calls_per_query`), la consulta se aborta con una excepción. Si es false, las filas restantes reciben el valor predeterminado del tipo de columna (cadena vacía para String).

<div id="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

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

Habilita la agregación independiente de particiones en hilos separados cuando la clave de partición se ajusta a la clave de agrupación. Resulta beneficioso cuando el número de particiones es cercano al número de núcleos y las particiones tienen aproximadamente el mismo tamaño

<div id="allow_archive_path_syntax">
  ## allow\_archive\_path\_syntax
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "Se añadió una nueva configuración para permitir deshabilitar la sintaxis de rutas de archivo."}]}, {"id": "row-2","items": [{"label": "24.5"},{"label": "1"},{"label": "Se añadió una nueva configuración para permitir deshabilitar la sintaxis de rutas de archivo."}]}]} />

Los motores File/S3 y la función de tabla interpretarán las rutas con '::' como `<archive> :: <file>` si el archivo tiene la extensión correcta.

<div id="allow_asynchronous_read_from_io_pool_for_merge_tree">
  ## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree
</div>

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

Usa el grupo de E/S en segundo plano para leer de tablas MergeTree. Esta configuración puede mejorar el rendimiento de las consultas limitadas por E/S

<div id="allow_calculating_subcolumns_sizes_for_merge_tree_reading">
  ## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Permite calcular el tamaño de las subcolumnas al leer desde MergeTree para mejorar la división de las tareas de lectura"}]}]} />

Cuando está habilitada, ClickHouse calculará el tamaño de los archivos necesarios para leer cada subcolumna, lo que mejora el cálculo del tamaño de las tareas y los bloques.

<div id="allow_changing_replica_until_first_data_packet">
  ## allow\_changing\_replica\_until\_first\_data\_packet
</div>

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

Si está habilitado, en las solicitudes hedged podemos iniciar una nueva conexión hasta recibir el primer paquete de datos, incluso si ya hemos avanzado algo
(pero no ha habido actualizaciones de progreso durante el tiempo de espera de `receive_data_timeout`); de lo contrario, deshabilitamos el cambio de réplica después de la primera vez que hubo progreso.

<div id="allow_create_index_without_type">
  ## allow\_create\_index\_without\_type
</div>

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

Permite la consulta CREATE INDEX sin TYPE. La consulta se ignorará. Se hizo para pruebas de compatibilidad con SQL.

<div id="allow_custom_error_code_in_throwif">
  ## allow\_custom\_error\_code\_in\_throwif
</div>

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

Permite usar un código de error personalizado en la función throwIf(). Si es true, las excepciones generadas pueden tener códigos de error inesperados.

<div id="allow_ddl">
  ## allow\_ddl
</div>

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

Si se establece en true, se permite a un usuario ejecutar consultas DDL.

<div id="allow_deprecated_database_ordinary">
  ## allow\_deprecated\_database\_ordinary
</div>

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

Permite crear bases de datos con el motor Ordinary obsoleto

<div id="allow_deprecated_error_prone_window_functions">
  ## allow\_deprecated\_error\_prone\_window\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "Permite usar funciones de ventana obsoletas y propensas a errores (neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue, runningDifference)"}]}]} />

Permite usar funciones de ventana obsoletas y propensas a errores (neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue, runningDifference)

<div id="allow_deprecated_snowflake_conversion_functions">
  ## allow\_deprecated\_snowflake\_conversion\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Se deshabilitaron las funciones obsoletas snowflakeToDateTime[64] y dateTime[64]ToSnowflake."}]}]} />

Las funciones `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` y `dateTime64ToSnowflake` están obsoletas y se deshabilitan de forma predeterminada.
En su lugar, utilice las funciones `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` y `dateTime64ToSnowflakeID`.

Para volver a habilitar las funciones obsoletas (por ejemplo, durante un período de transición), establezca este ajuste en `true`.

<div id="allow_deprecated_syntax_for_merge_tree">
  ## allow\_deprecated\_syntax\_for\_merge\_tree
</div>

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

Permite crear tablas \*MergeTree con la sintaxis en desuso para la definición del motor

<div id="allow_distributed_ddl">
  ## allow\_distributed\_ddl
</div>

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

Si se establece en true, se permite que un usuario ejecute consultas DDL distribuidas.

<div id="allow_drop_detached">
  ## allow\_drop\_detached
</div>

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

Permite ejecutar consultas ALTER TABLE ... DROP DETACHED PART\[ITION] ...

<div id="allow_dynamic_type_in_join_keys">
  ## allow\_dynamic\_type\_in\_join\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "No permitir el uso del tipo Dynamic en las claves de JOIN de forma predeterminada"}]}]} />

Permite usar el tipo Dynamic en las claves de JOIN. Se añadió por motivos de compatibilidad. No se recomienda usar el tipo Dynamic en las claves de JOIN, ya que la comparación con otros tipos puede producir resultados inesperados.

<div id="allow_execute_multiif_columnar">
  ## allow\_execute\_multiif\_columnar
</div>

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

Permite ejecutar la función multiIf de forma columnar

<div id="allow_experimental_ai_functions">
  ## allow\_experimental\_ai\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita las funciones de IA experimentales (p. ej., `aiGenerateContent`). Estas funciones realizan llamadas HTTP externas a proveedores de IA.

<div id="allow_experimental_analyzer">
  ## allow\_experimental\_analyzer
</div>

**Aliases**: `enable_analyzer`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Habilita el analizador y el planificador de forma predeterminada."}]}]} />

Permite usar el nuevo analizador de consultas.

<div id="allow_experimental_cleanup_old_data_files_compaction">
  ## allow\_experimental\_cleanup\_old\_data\_files\_compaction
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite eliminar archivos de datos antiguos durante la compactación de Iceberg.

<div id="allow_experimental_codecs">
  ## allow\_experimental\_codecs
</div>

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

Si se establece en true, permite especificar códecs de compresión experimentales (aunque todavía no tenemos ninguno y esta opción no hace nada).

<div id="allow_experimental_correlated_subqueries">
  ## allow\_experimental\_correlated\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "La compatibilidad con subconsultas correlacionadas pasa a ser Beta."}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Se añadió una nueva configuración para permitir la ejecución de subconsultas correlacionadas."}]}]} />

Permite ejecutar subconsultas correlacionadas.

<div id="allow_experimental_database_glue_catalog">
  ## allow\_experimental\_database\_glue\_catalog
</div>

**Alias**: `allow_database_glue_catalog`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "Permite usar el motor de base de datos experimental DataLakeCatalog con catalog_type = 'glue'"}]}]} />

Permite usar el motor de base de datos experimental DataLakeCatalog con catalog\_type = 'glue'

Valor predeterminado en Cloud: `1`.

<div id="allow_experimental_database_hms_catalog">
  ## allow\_experimental\_database\_hms\_catalog
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Permite el motor de base de datos experimental DataLakeCatalog con catalog_type = 'hive'"}]}]} />

Permite el motor de base de datos experimental DataLakeCatalog con catalog\_type = 'hms'

<div id="allow_experimental_database_iceberg">
  ## allow\_experimental\_database\_iceberg
</div>

**Alias**: `allow_database_iceberg`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite usar el motor de base de datos experimental DataLakeCatalog con catalog\_type = 'iceberg'

Valor predeterminado de Cloud: `1`.

<div id="allow_experimental_database_materialized_postgresql">
  ## allow\_experimental\_database\_materialized\_postgresql
</div>

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

Permite crear una database con Engine=MaterializedPostgreSQL(...).

<div id="allow_experimental_database_paimon_rest_catalog">
  ## allow\_experimental\_database\_paimon\_rest\_catalog
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite el motor de base de datos experimental DataLakeCatalog con catalog\_type = 'paimon\_rest'

<div id="allow_experimental_database_unity_catalog">
  ## allow\_experimental\_database\_unity\_catalog
</div>

**Aliases**: `allow_database_unity_catalog`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "Permite usar el motor de base de datos experimental DataLakeCatalog con catalog_type = 'unity'"}]}]} />

Permite usar el motor de base de datos experimental DataLakeCatalog con catalog\_type = 'unity'

Valor predeterminado en Cloud: `1`.

<div id="allow_experimental_delta_kernel_rs">
  ## allow\_experimental\_delta\_kernel\_rs
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite usar la implementación experimental de delta-kernel-rs.

<div id="allow_experimental_delta_lake_writes">
  ## allow\_experimental\_delta\_lake\_writes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita la función de escritura de delta-kernel.

<div id="allow_experimental_expire_snapshots">
  ## allow\_experimental\_expire\_snapshots
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite ejecutar el comando experimental de Iceberg `ALTER TABLE ... EXECUTE expire_snapshots`.

<div id="allow_experimental_funnel_functions">
  ## allow\_experimental\_funnel\_functions
</div>

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

Activa las funciones experimentales para el análisis de embudos.

<div id="allow_experimental_geo_types_in_iceberg">
  ## allow\_experimental\_geo\_types\_in\_iceberg
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para permitir interpretar los campos `geometry`/`geography` de Iceberg como el tipo `Geometry` (Variant) de ClickHouse."}]}]} />

Permite interpretar los tipos de campo `geometry` y `geography` de Iceberg como el tipo `Geometry` (Variant) de ClickHouse.

<div id="allow_experimental_hash_functions">
  ## allow\_experimental\_hash\_functions
</div>

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

Permite el uso de funciones hash experimentales

<div id="allow_experimental_iceberg_compaction">
  ## allow\_experimental\_iceberg\_compaction
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva opción"}]}]} />

Permite usar `OPTIMIZE` explícitamente en tablas Iceberg.

<div id="allow_experimental_join_right_table_sorting">
  ## allow\_experimental\_join\_right\_table\_sorting
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Si se establece en true y se cumplen las condiciones de `join_to_sort_minimum_perkey_rows` y `join_to_sort_maximum_table_rows`, reordena la tabla de la derecha por clave para mejorar el rendimiento en un hash join left o inner"}]}]} />

Si se establece en true y se cumplen las condiciones de `join_to_sort_minimum_perkey_rows` y `join_to_sort_maximum_table_rows`, reordena la tabla de la derecha por clave para mejorar el rendimiento en un hash join left o inner.

<div id="allow_experimental_json_lazy_type_hints">
  ## allow\_experimental\_json\_lazy\_type\_hints
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración experimental para las indicaciones de tipo diferidas del tipo JSON"}]}]} />

Habilita las indicaciones de tipo diferidas experimentales para el tipo JSON. Esta función permite optimizar las conversiones del tipo JSON al posponer la evaluación de las indicaciones de tipo.

<div id="allow_experimental_kafka_offsets_storage_in_keeper">
  ## allow\_experimental\_kafka\_offsets\_storage\_in\_keeper
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Permite usar el motor de almacenamiento Kafka experimental que almacena los offsets confirmados en ClickHouse Keeper"}]}]} />

Permite la función experimental de almacenar en ClickHouse Keeper los offsets de Kafka. Cuando está habilitada, se pueden especificar una ruta de ClickHouse Keeper y un nombre de réplica para el motor de tabla Kafka. Como resultado, en lugar del motor Kafka habitual, se utilizará un nuevo tipo de motor de almacenamiento que almacena los offsets confirmados principalmente en ClickHouse Keeper

<div id="allow_experimental_kusto_dialect">
  ## allow\_experimental\_kusto\_dialect
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita Kusto Query Language (KQL), una alternativa a SQL.

<div id="allow_experimental_materialized_postgresql_table">
  ## allow\_experimental\_materialized\_postgresql\_table
</div>

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

Permite usar el table engine MaterializedPostgreSQL. Está deshabilitado de forma predeterminada porque esta función es experimental.

<div id="allow_experimental_nlp_functions">
  ## allow\_experimental\_nlp\_functions
</div>

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

Habilita las funciones experimentales de procesamiento del lenguaje natural.

<div id="allow_experimental_nullable_tuple_type">
  ## allow\_experimental\_nullable\_tuple\_type
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración experimental"}]}]} />

Permite crear columnas [Nullable](/es/reference/data-types/nullable) [Tuple](/es/reference/data-types/tuple) en las tablas.

Esta configuración no controla si las subcolumnas de tupla extraídas pueden ser `Nullable` (por ejemplo, de columnas Dynamic, Variant, JSON o Tuple).
Utilice `allow_nullable_tuple_in_extracted_subcolumns` para controlar si las subcolumnas de tupla extraídas pueden ser `Nullable`.

<div id="allow_experimental_object_storage_queue_hive_partitioning">
  ## allow\_experimental\_object\_storage\_queue\_hive\_partitioning
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite usar el particionado de Hive con los motores S3Queue/AzureQueue

<div id="allow_experimental_paimon_storage_engine">
  ## allow\_experimental\_paimon\_storage\_engine
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite crear tablas que usen motores de tabla Paimon\*.

<div id="allow_experimental_parallel_reading_from_replicas">
  ## allow\_experimental\_parallel\_reading\_from\_replicas
</div>

**Alias**: `enable_parallel_replicas`

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

Usa hasta `max_parallel_replicas` réplicas de cada segmento para ejecutar consultas SELECT. La lectura se paraleliza y se coordina de forma dinámica. 0 - deshabilitado, 1 - habilitado, se deshabilita silenciosamente en caso de fallo, 2 - habilitado, se lanza una excepción en caso de fallo

<div id="allow_experimental_polyglot_dialect">
  ## allow\_experimental\_polyglot\_dialect
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración para habilitar el dialecto polyglot del transpilador SQL."}]}]} />

Habilita el transpilador SQL polyglot: transpila SQL de más de 30 dialectos (MySQL, PostgreSQL, SQLite, Snowflake, DuckDB, etc.) a ClickHouse SQL.

<div id="allow_experimental_prql_dialect">
  ## allow\_experimental\_prql\_dialect
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Activa PRQL, una alternativa a SQL.

<div id="allow_experimental_query_deduplication">
  ## allow\_experimental\_query\_deduplication
</div>

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

Deduplicación experimental de datos para consultas SELECT basada en UUIDs de partes

<div id="allow_experimental_time_series_aggregate_functions">
  ## allow\_experimental\_time\_series\_aggregate\_functions
</div>

**Alias**: `allow_experimental_ts_to_grid_aggregate_function`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración para habilitar las funciones de agregación experimentales timeSeries*."}]}]} />

Funciones de agregación experimentales timeSeries\* para el remuestreo de series temporales de tipo Prometheus y el cálculo de tasas y deltas.

<div id="allow_experimental_time_series_table">
  ## allow\_experimental\_time\_series\_table
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Se añadió una nueva configuración para permitir el motor de tabla TimeSeries"}]}]} />

Permite crear tablas con el motor de tabla [TimeSeries](/es/reference/engines/table-engines/integrations/time-series). Posibles valores:

* 0 — el motor de tabla [TimeSeries](/es/reference/engines/table-engines/integrations/time-series) está deshabilitado.
* 1 — el motor de tabla [TimeSeries](/es/reference/engines/table-engines/integrations/time-series) está habilitado.

<div id="allow_experimental_unique_key">
  ## allow\_experimental\_unique\_key
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para habilitar la cláusula experimental UNIQUE KEY en las tablas de la familia MergeTree"}]}]} />

Permite crear tablas con la cláusula `UNIQUE KEY` en motores de la familia MergeTree.

<div id="allow_experimental_window_view">
  ## allow\_experimental\_window\_view
</div>

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

Habilita WINDOW VIEW. Aún no está lo suficientemente maduro.

<div id="allow_experimental_ytsaurus_dictionary_source">
  ## allow\_experimental\_ytsaurus\_dictionary\_source
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Fuente de diccionario experimental para la integración con YTsaurus.

<div id="allow_experimental_ytsaurus_table_engine">
  ## allow\_experimental\_ytsaurus\_table\_engine
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva opción de configuración."}]}]} />

Motor de tabla experimental para la integración con YTsaurus.

<div id="allow_experimental_ytsaurus_table_function">
  ## allow\_experimental\_ytsaurus\_table\_function
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Motor de tabla experimental para la integración con YTsaurus.

<div id="allow_fuzz_query_functions">
  ## allow\_fuzz\_query\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración para habilitar la función fuzzQuery."}]}]} />

Habilita la función `fuzzQuery`, que aplica mutaciones aleatorias al AST de una cadena de consulta.

<div id="allow_general_join_planning">
  ## allow\_general\_join\_planning
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Permite usar un algoritmo de planificación de join más general cuando está habilitado el algoritmo de hash join."}]}]} />

Permite usar un algoritmo de planificación de join más general, capaz de manejar condiciones más complejas, pero solo funciona con hash join. Si hash join no está habilitado, se usa el algoritmo habitual de planificación de join independientemente del valor de esta configuración.

<div id="allow_get_client_http_header">
  ## allow\_get\_client\_http\_header
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Se introdujo una nueva función."}]}]} />

Permite utilizar la función `getClientHTTPHeader`, que permite obtener el valor de una cabecera de la solicitud HTTP actual. No está habilitada de forma predeterminada por motivos de seguridad, ya que algunas cabeceras, como `Cookie`, podrían contener información confidencial. Tenga en cuenta que las cabeceras `X-ClickHouse-*` y `Authentication` siempre están restringidas y no se pueden obtener con esta función.

<div id="allow_hyperscan">
  ## allow\_hyperscan
</div>

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

Permite las funciones que utilizan la biblioteca Hyperscan. Desactívala para evitar tiempos de compilación potencialmente largos y un uso excesivo de recursos.

<div id="allow_iceberg_remove_orphan_files">
  ## allow\_iceberg\_remove\_orphan\_files
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para habilitar la eliminación de archivos huérfanos de Iceberg"}]}]} />

Permite usar 'ALTER TABLE ... EXECUTE remove\_orphan\_files()' en tablas Iceberg.

<div id="allow_insert_into_iceberg">
  ## allow\_insert\_into\_iceberg
</div>

**Aliases**: `allow_experimental_insert_into_iceberg`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "La inserción en Iceberg pasó a Beta"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite ejecutar consultas `insert` en Iceberg.

<div id="allow_introspection_functions">
  ## allow\_introspection\_functions
</div>

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

Habilita o deshabilita las [funciones de introspección](/es/reference/functions/regular-functions/introspection) para el perfilado de consultas.

Valores posibles:

* 1 — Funciones de introspección habilitadas.
* 0 — Funciones de introspección deshabilitadas.

**Véase también**

* [Perfilador de consultas por muestreo](/es/concepts/features/performance/troubleshoot/sampling-query-profiler)
* Tabla del sistema [trace\_log](/es/reference/system-tables/trace_log)

<div id="allow_key_condition_coalesce_rewrite">
  ## allow\_key\_condition\_coalesce\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración para reescribir predicados de la forma `coalesce(a_1, ..., a_N) <op> const` (y, de forma equivalente, `ifNull`, o con la constante a la izquierda) como una disyunción antes del análisis de índices, de modo que puedan usarse la clave primaria por columna y los skip indexes de cada `a_i`. También se admiten formas con constantes parciales como `coalesce(a, 42, b)` y `coalesce(a, b, 42)`."}]}]} />

Reescribe predicados de la forma `coalesce(a_1, ..., a_N) <op> const` (y, de forma equivalente, `ifNull`, o con la constante a la izquierda) como la disyunción `(a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const)` antes del análisis de índices, de modo que puedan usarse la clave primaria por columna y los skip indexes de cada `a_i`. Se admiten formas con constantes parciales como `coalesce(a, 42, b)` y `coalesce(a, b, 42)`: la lista de argumentos se normaliza igual que el propio `coalesce` (se eliminan los literales `NULL` y se descartan los argumentos posteriores al primero que no sea `Nullable`) y, si existe, una constante final distinta de `NULL` se emite como la rama final. La reescritura es estrictamente aditiva para la poda de índices; el filtrado en tiempo de ejecución sigue usando el predicado original.

<div id="allow_materialized_view_with_bad_select">
  ## allow\_materialized\_view\_with\_bad\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "No permitir la creación de MV que hagan referencia a columnas o tablas inexistentes"}]}, {"id": "row-2","items": [{"label": "24.9"},{"label": "1"},{"label": "Permitir (pero sin habilitar aún) una validación más estricta en CREATE MATERIALIZED VIEW"}]}]} />

Permite CREATE MATERIALIZED VIEW con una consulta SELECT que haga referencia a tablas o columnas inexistentes. Aun así, debe ser sintácticamente válida. No se aplica a las MV actualizables. Tampoco se aplica si el esquema de la MV debe inferirse a partir de la consulta SELECT (es decir, si CREATE no tiene lista de columnas ni tabla TO). Puede usarse para crear una MV antes de su tabla de origen.

<div id="allow_named_collection_override_by_default">
  ## allow\_named\_collection\_override\_by\_default
</div>

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

Permite de forma predeterminada la sobrescritura de los campos de las colecciones con nombre.

<div id="allow_non_metadata_alters">
  ## allow\_non\_metadata\_alters
</div>

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

Permite ejecutar sentencias ALTER que afectan no solo a los metadatos de las tablas, sino también a los datos en disco

<div id="allow_nonconst_timezone_arguments">
  ## allow\_nonconst\_timezone\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "Permite argumentos de zona horaria no constantes en determinadas funciones relacionadas con el tiempo, como toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*()."}]}]} />

Permite argumentos de zona horaria no constantes en determinadas funciones relacionadas con el tiempo, como toTimeZone(), fromUnixTimestamp\*(), snowflakeToDateTime\*().
Esta configuración existe únicamente por motivos de compatibilidad. En ClickHouse, la zona horaria es una propiedad del tipo de dato y, por tanto, de la columna.
Habilitar esta configuración da la impresión errónea de que distintos valores dentro de una columna pueden tener distintas zonas horarias.
Por lo tanto, no habilite esta configuración.

<div id="allow_nondeterministic_mutations">
  ## allow\_nondeterministic\_mutations
</div>

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

Configuración a nivel de usuario que permite que las mutaciones en tablas replicadas utilicen funciones no deterministas como `dictGet`.

Dado que, por ejemplo, los diccionarios pueden estar desincronizados entre nodos, las mutaciones que extraen valores de ellos no están permitidas en tablas replicadas de forma predeterminada. Al habilitar esta configuración, se permite este comportamiento, por lo que es responsabilidad del usuario garantizar que los datos utilizados estén sincronizados en todos los nodos.

**Ejemplo**

```xml theme={null}
<profiles>
    <default>
        <allow_nondeterministic_mutations>1</allow_nondeterministic_mutations>

        <!-- ... -->
    </default>

    <!-- ... -->

</profiles>
```

<div id="allow_nondeterministic_optimize_skip_unused_shards">
  ## allow\_nondeterministic\_optimize\_skip\_unused\_shards
</div>

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

Permite usar funciones no deterministas (como `rand` o `dictGet`, ya que esta última tiene algunas particularidades con las actualizaciones) en la clave de segmentación.

Valores posibles:

* 0 — No permitido.
* 1 — Permitido.

<div id="allow_nullable_tuple_in_extracted_subcolumns">
  ## allow\_nullable\_tuple\_in\_extracted\_subcolumns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración que controla si las subcolumnas extraídas de Tuple pueden ser anulables."}]}]} />

Controla si las subcolumnas extraídas de tipo `Tuple(...)` pueden tener el tipo `Nullable(Tuple(...))`.

* `false`: Devuelve `Tuple(...)` y usa los valores de tupla predeterminados para las filas en las que falta la subcolumna.
* `true`: Devuelve `Nullable(Tuple(...))` y usa `NULL` para las filas en las que falta la subcolumna.

Esta configuración solo controla el comportamiento de las subcolumnas extraídas.
No controla si se pueden crear columnas `Nullable(Tuple(...))` en tablas; eso se controla con `allow_experimental_nullable_tuple_type`.

ClickHouse usa el valor de esta configuración cargado al iniciar el servidor.
Los cambios realizados con `SET` o `SETTINGS` a nivel de consulta no modifican el comportamiento de las subcolumnas extraídas.
Para cambiar el comportamiento de las subcolumnas extraídas, actualice `allow_nullable_tuple_in_extracted_subcolumns` en la configuración del perfil de inicio (por ejemplo, users.xml) y reinicie el servidor.

<div id="allow_prefetched_read_pool_for_local_filesystem">
  ## allow\_prefetched\_read\_pool\_for\_local\_filesystem
</div>

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

Usa preferentemente el threadpool de prelectura si todas las partes están en el sistema de archivos local

<div id="allow_prefetched_read_pool_for_remote_filesystem">
  ## allow\_prefetched\_read\_pool\_for\_remote\_filesystem
</div>

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

Preferir el pool de hilos con lectura anticipada si todas las partes están en un sistema de archivos remoto

<div id="allow_push_predicate_ast_for_distributed_subqueries">
  ## allow\_push\_predicate\_ast\_for\_distributed\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite aplicar push predicate a nivel de AST en subconsultas distribuidas con el analizador habilitado

<div id="allow_push_predicate_when_subquery_contains_with">
  ## allow\_push\_predicate\_when\_subquery\_contains\_with
</div>

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

Permite aplicar push predicate cuando la subconsulta contiene una cláusula WITH

<div id="allow_rank_dense_rank_arguments">
  ## allow\_rank\_dense\_rank\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración. Antes de la versión 26.5, las funciones de ventana `RANK` y `DENSE_RANK` ignoraban silenciosamente cualquier argumento proporcionado (equivalente a `allow_rank_dense_rank_arguments = 1`). A partir de la versión 26.5, rechazan argumentos de forma predeterminada con `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` porque, según el estándar SQL, estas funciones no aceptan ningún argumento. Establezca este valor en `1` para restaurar el comportamiento heredado."}]}]} />

Permite pasar argumentos a las funciones de ventana `RANK` y `DENSE_RANK` para mantener la compatibilidad con versiones anteriores.

Según el estándar SQL, `RANK` y `DENSE_RANK` no aceptan argumentos: clasifican las filas únicamente en función de la ventana
`OVER (ORDER BY ...)`. En las versiones de ClickHouse anteriores a la 26.5, consultas como
`RANK(x) OVER (...)` aceptaban e ignoraban silenciosamente el argumento, lo que generaba confusión entre los usuarios
(el argumento visible sugería que influía en la clasificación, pero no era así).

Cuando esta configuración es `false` (el valor predeterminado), `RANK` y `DENSE_RANK` rechazan cualquier argumento y
generan `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. Cuando se establece en `true`, se restaura el comportamiento heredado permisivo:
los argumentos se ignoran silenciosamente, igual que antes de la versión 26.5.

<div id="allow_reorder_prewhere_conditions">
  ## allow\_reorder\_prewhere\_conditions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite reordenar las condiciones al moverlas de WHERE a PREWHERE para optimizar el filtrado

<div id="allow_settings_after_format_in_insert">
  ## allow\_settings\_after\_format\_in\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.4"},{"label": "0"},{"label": "No permitir `SETTINGS` después de `FORMAT` en consultas `INSERT`, porque ClickHouse interpreta `SETTINGS` como si fueran valores, lo que resulta engañoso"}]}]} />

Controla si se permite o no `SETTINGS` después de `FORMAT` en consultas `INSERT`. No se recomienda usar esta opción, ya que puede interpretar parte de `SETTINGS` como valores.

Ejemplo:

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

Pero la siguiente consulta solo funcionará con `allow_settings_after_format_in_insert`:

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

Valores posibles:

* 0 — No se permite.
* 1 — Se permite.

<Note>
  Use esta configuración solo por compatibilidad con versiones anteriores si sus casos de uso dependen de la sintaxis anterior.
</Note>

<div id="allow_simdjson">
  ## allow\_simdjson
</div>

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

Permite utilizar la biblioteca simdjson en las funciones 'JSON\*' si las instrucciones AVX2 están disponibles. Si se desactiva, se utilizará rapidjson.

<div id="allow_special_serialization_kinds_in_output_formats">
  ## allow\_special\_serialization\_kinds\_in\_output\_formats
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Habilita la salida directa de representaciones especiales de columnas, como Sparse/Replicated, en algunos formatos de salida"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Añade una configuración para permitir la salida de representaciones especiales de columnas, como Sparse/Replicated, sin convertirlas en columnas completas"}]}]} />

Permite generar la salida de columnas con tipos especiales de serialización, como Sparse y Replicated, sin convertirlas en una representación de columna completa.
Ayuda a evitar copias de datos innecesarias durante el formateo.

<div id="allow_statistics">
  ## allow\_statistics
</div>

**Alias**: `allow_experimental_statistics`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Las estadísticas de columnas ahora son GA"}]}]} />

Permite definir columnas con [estadísticas](/es/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) y [gestionar las estadísticas](/es/reference/engines/table-engines/mergetree-family/mergetree#column-statistics).

<div id="allow_statistics_optimize">
  ## allow\_statistics\_optimize
</div>

**Alias**: `allow_statistic_optimize`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Habilita esta optimización de forma predeterminada."}]}, {"id": "row-2","items": [{"label": "24.6"},{"label": "0"},{"label": "Se cambió el nombre de esta configuración. El nombre anterior es `allow_statistic_optimize`."}]}]} />

Permite utilizar estadísticas para optimizar consultas

<div id="allow_suspicious_codecs">
  ## allow\_suspicious\_codecs
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.5"},{"label": "0"},{"label": "No permite especificar códecs de compresión sin sentido"}]}]} />

Si se establece en true, se permite especificar códecs de compresión sin sentido.

<div id="allow_suspicious_fixed_string_types">
  ## allow\_suspicious\_fixed\_string\_types
</div>

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

En la instrucción CREATE TABLE, permite crear columnas de tipo FixedString(n) con n > 256. Un FixedString con longitud >= 256 es sospechoso y muy probablemente indica un uso incorrecto

<div id="allow_suspicious_indices">
  ## allow\_suspicious\_indices
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "Si es true, el índice se puede definir con expresiones idénticas"}]}]} />

Rechaza índices primarios/secundarios y claves de ordenación con expresiones idénticas

<div id="allow_suspicious_low_cardinality_types">
  ## allow\_suspicious\_low\_cardinality\_types
</div>

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

Permite o restringe el uso de [LowCardinality](/es/reference/data-types/lowcardinality) con tipos de datos de tamaño fijo de 8 bytes o menos: tipos de datos numéricos y `FixedString(8_bytes_or_less)`.

En valores fijos pequeños, el uso de `LowCardinality` suele ser ineficiente, porque ClickHouse almacena un índice numérico para cada fila. Como resultado:

* El uso de espacio en disco puede aumentar.
* El consumo de RAM puede ser mayor, según el tamaño del diccionario.
* Algunas funciones pueden ejecutarse más lentamente debido a operaciones adicionales de codificación/decodificación.

Los tiempos de merge en tablas con motor [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) pueden aumentar por todas las razones descritas anteriormente.

Posibles valores:

* 1 — El uso de `LowCardinality` no está restringido.
* 0 — El uso de `LowCardinality` está restringido.

<div id="allow_suspicious_primary_key">
  ## allow\_suspicious\_primary\_key
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Prohíbe PRIMARY KEY/ORDER BY sospechosos en MergeTree (es decir, SimpleAggregateFunction)"}]}]} />

Permite `PRIMARY KEY`/`ORDER BY` sospechosos en MergeTree (es decir, SimpleAggregateFunction).

<div id="allow_suspicious_ttl_expressions">
  ## allow\_suspicious\_ttl\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.12"},{"label": "0"},{"label": "Es un ajuste nuevo y, en las versiones anteriores, el comportamiento equivalía a permitirlo."}]}]} />

Rechaza las expresiones TTL que no dependen de ninguna columna de la tabla. La mayoría de las veces, esto indica un error del usuario.

<div id="allow_suspicious_types_in_group_by">
  ## allow\_suspicious\_types\_in\_group\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "No permitir, de forma predeterminada, los tipos Variant/Dynamic en las claves de GROUP BY"}]}]} />

Permite o restringe el uso de los tipos [Variant](/es/reference/data-types/variant) y [Dynamic](/es/reference/data-types/dynamic) en las claves de GROUP BY.

<div id="allow_suspicious_types_in_order_by">
  ## allow\_suspicious\_types\_in\_order\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "No permitir tipos Variant/Dynamic en las claves ORDER BY de forma predeterminada"}]}]} />

Permite o restringe el uso de los tipos [Variant](/es/reference/data-types/variant) y [Dynamic](/es/reference/data-types/dynamic) en las claves ORDER BY.

<div id="allow_suspicious_variant_types">
  ## allow\_suspicious\_variant\_types
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "No permitir crear el tipo Variant con variantes sospechosas de forma predeterminada"}]}]} />

En la instrucción CREATE TABLE, permite especificar el tipo Variant con tipos de variante similares (por ejemplo, distintos tipos numéricos o de fecha). Habilitar esta configuración puede introducir cierta ambigüedad al trabajar con valores de tipos similares.

<div id="allow_unrestricted_reads_from_keeper">
  ## allow\_unrestricted\_reads\_from\_keeper
</div>

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

Permite lecturas sin restricciones (sin condición en la ruta) desde la tabla system.zookeeper; puede ser útil, pero no es seguro para ZooKeeper

<div id="alter_move_to_space_execute_async">
  ## alter\_move\_to\_space\_execute\_async
</div>

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

Ejecuta ALTER TABLE MOVE ... TO \[DISK|VOLUME] de forma asíncrona

<div id="alter_partition_verbose_result">
  ## alter\_partition\_verbose\_result
</div>

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

Habilita o deshabilita la visualización de información sobre las partes a las que se han aplicado correctamente las operaciones de manipulación de particiones y partes.
Se aplica a [ATTACH PARTITION|PART](/es/reference/statements/alter/partition#attach-partitionpart) y a [FREEZE PARTITION](/es/reference/statements/alter/partition#freeze-partition).

Valores posibles:

* 0 — deshabilita el nivel de detalle.
* 1 — habilita el nivel de detalle.

**Ejemplo**

```sql theme={null}
CREATE TABLE test(a Int64, d Date, s String) ENGINE = MergeTree PARTITION BY toYYYYMDECLARE(d) ORDER BY a;
INSERT INTO test VALUES(1, '2021-01-01', '');
INSERT INTO test VALUES(1, '2021-01-01', '');
ALTER TABLE test DETACH PARTITION ID '202101';

ALTER TABLE test ATTACH PARTITION ID '202101' SETTINGS alter_partition_verbose_result = 1;

┌─command_type─────┬─partition_id─┬─part_name────┬─old_part_name─┐
│ ATTACH PARTITION │ 202101       │ 202101_7_7_0 │ 202101_5_5_0  │
│ ATTACH PARTITION │ 202101       │ 202101_8_8_0 │ 202101_6_6_0  │
└──────────────────┴──────────────┴──────────────┴───────────────┘

ALTER TABLE test FREEZE SETTINGS alter_partition_verbose_result = 1;

┌─command_type─┬─partition_id─┬─part_name────┬─backup_name─┬─backup_path───────────────────┬─part_backup_path────────────────────────────────────────────┐
│ FREEZE ALL   │ 202101       │ 202101_7_7_0 │ 8           │ /var/lib/clickhouse/shadow/8/ │ /var/lib/clickhouse/shadow/8/data/default/test/202101_7_7_0 │
│ FREEZE ALL   │ 202101       │ 202101_8_8_0 │ 8           │ /var/lib/clickhouse/shadow/8/ │ /var/lib/clickhouse/shadow/8/data/default/test/202101_8_8_0 │
└──────────────┴──────────────┴──────────────┴─────────────┴───────────────────────────────┴─────────────────────────────────────────────────────────────┘
```

<div id="alter_sync">
  ## alter\_sync
</div>

**Alias**: `replication_alter_partitions_sync`

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

Permite especificar el comportamiento de espera para las acciones que deben ejecutarse en las réplicas mediante consultas [`ALTER`](/es/reference/statements/alter), [`OPTIMIZE`](/es/reference/statements/optimize) o [`TRUNCATE`](/es/reference/statements/truncate).

Valores posibles:

* `0` — No esperar.
* `1` — Esperar la ejecución propia.
* `2` — Esperar a todos.
* `3` - Esperar solo a las réplicas activas.

Valor predeterminado de Cloud: `0`.

<Note>
  `alter_sync` se aplica solo a tablas `Replicated` y `SharedMergeTree`; no tiene efecto al alterar tablas que no sean `Replicated` ni `Shared`.
</Note>

<div id="alter_update_mode">
  ## alter\_update\_mode
</div>

<SettingsInfoBlock type="AlterUpdateMode" default_value="heavy" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "heavy"},{"label": "Nueva configuración"}]}]} />

Modo para las consultas `ALTER` que incluyen comandos `UPDATE`.

Valores posibles:

* `heavy` - ejecuta una mutación normal.
* `lightweight` - ejecuta una actualización ligera si es posible; de lo contrario, ejecuta una mutación normal.
* `lightweight_force` - ejecuta una actualización ligera si es posible; de lo contrario, lanza una excepción.

<div id="analyze_index_with_space_filling_curves">
  ## analyze\_index\_with\_space\_filling\_curves
</div>

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

Si una tabla tiene una curva de relleno espacial en su índice, p. ej., `ORDER BY mortonEncode(x, y)` o `ORDER BY hilbertEncode(x, y)`, y la consulta incluye condiciones sobre sus argumentos, p. ej., `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, utilice la curva de relleno espacial para el análisis del índice.

<div id="analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested">
  ## analyzer\_compatibility\_allow\_compound\_identifiers\_in\_unflatten\_nested
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Permite añadir identificadores compuestos a nested. Esta es una configuración de compatibilidad porque cambia el resultado de la consulta. Cuando está deshabilitada, `SELECT a.b.c FROM table ARRAY JOIN a` no funciona, y `SELECT a FROM table` no incluye la columna `a.b.c` en el resultado de `Nested a`.

<div id="analyzer_compatibility_join_using_top_level_identifier">
  ## analyzer\_compatibility\_join\_using\_top\_level\_identifier
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Forzar la resolución del identificador en JOIN USING a partir de la proyección"}]}]} />

Forzar la resolución del identificador en JOIN USING a partir de la proyección (por ejemplo, en `SELECT a + 1 AS b FROM t1 JOIN t2 USING (b)` el join se realizará mediante `t1.a + 1 = t2.b`, en lugar de `t1.b = t2.b`).

<div id="analyzer_inline_views">
  ## analyzer\_inline\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Cuando está habilitado, el analizador sustituye las vistas ordinarias (no materializadas y no parametrizadas) por las subconsultas que las definen, lo que permite optimizaciones que abarcan esos límites, como el pushdown de predicados y la poda de columnas.

<div id="any_join_distinct_right_table_keys">
  ## any\_join\_distinct\_right\_table\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.14"},{"label": "0"},{"label": "Deshabilita ANY RIGHT y ANY FULL JOIN de forma predeterminada para evitar inconsistencias"}]}]} />

Habilita el comportamiento heredado del servidor de ClickHouse en las operaciones `ANY INNER|LEFT JOIN`.

<Note>
  Use esta configuración solo por compatibilidad con versiones anteriores si sus casos de uso dependen del comportamiento heredado de `JOIN`.
</Note>

Cuando el comportamiento heredado está habilitado:

* Los resultados de las operaciones `t1 ANY LEFT JOIN t2` y `t2 ANY RIGHT JOIN t1` no son iguales porque ClickHouse usa una lógica con una correspondencia de claves entre tablas, de izquierda a derecha, de muchos a uno.
* Los resultados de las operaciones `ANY INNER JOIN` contienen todas las filas de la tabla izquierda, igual que las operaciones `SEMI LEFT JOIN`.

Cuando el comportamiento heredado está deshabilitado:

* Los resultados de las operaciones `t1 ANY LEFT JOIN t2` y `t2 ANY RIGHT JOIN t1` son iguales porque ClickHouse usa una lógica que proporciona una correspondencia de claves de uno a muchos en las operaciones `ANY RIGHT JOIN`.
* Los resultados de las operaciones `ANY INNER JOIN` contienen una fila por clave de las tablas izquierda y derecha.

Valores posibles:

* 0 — El comportamiento heredado está deshabilitado.
* 1 — El comportamiento heredado está habilitado.

Véase también:

* [JOIN strictness](/es/reference/statements/select/join#settings)

<div id="apply_deleted_mask">
  ## apply\_deleted\_mask
</div>

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

Habilita el filtrado de las filas eliminadas con eliminación ligera. Si se desactiva, una consulta podrá leer esas filas. Esto resulta útil para escenarios de depuración y de recuperación de filas eliminadas

<div id="apply_mutations_on_fly">
  ## apply\_mutations\_on\_fly
</div>

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

Si es true, las mutaciones (UPDATE y DELETE) que no están materializadas en la data part se aplicarán en las consultas SELECT.

<div id="apply_patch_parts">
  ## apply\_patch\_parts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si es true, las patch parts (que representan actualizaciones ligeras) se aplican en las consultas SELECT.

<div id="apply_patch_parts_join_cache_buckets">
  ## apply\_patch\_parts\_join\_cache\_buckets
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "8"},{"label": "Nueva configuración"}]}]} />

El número de buckets de la caché temporal para aplicar partes de parche en modo Join.

<div id="apply_prewhere_after_final">
  ## apply\_prewhere\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración. Cuando se habilita, las condiciones PREWHERE se aplican después del procesamiento FINAL."}]}]} />

Cuando se habilita, las condiciones PREWHERE se aplican después del procesamiento FINAL en ReplacingMergeTree y motores similares.
Esto puede resultar útil cuando PREWHERE hace referencia a columnas que pueden tener valores distintos entre filas duplicadas
y quiere que FINAL seleccione la fila que prevalece antes de filtrar. Cuando está deshabilitada, PREWHERE se aplica durante la lectura.
Nota: Si apply\_row\_level\_security\_after\_final está habilitada y la política de filas usa columnas que no forman parte de la clave de ordenación, PREWHERE también
se pospondrá para mantener el orden de ejecución correcto (la política de filas debe aplicarse antes de PREWHERE).

<div id="apply_row_policy_after_final">
  ## apply\_row\_policy\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "apply_row_policy_after_final se habilita de forma predeterminada, como era el caso en la 25.8 antes de #87303"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración para controlar si las políticas de fila y PREWHERE se aplican después del procesamiento FINAL en tablas *MergeTree"}]}]} />

Cuando está habilitado, las políticas de fila y PREWHERE se aplican después del procesamiento FINAL en tablas \*MergeTree. (Especialmente en ReplacingMergeTree)
Cuando está deshabilitado, las políticas de fila se aplican antes de FINAL, lo que puede producir resultados diferentes cuando la política
filtra filas que deberían usarse para la deduplicación en ReplacingMergeTree o motores similares.

Si la expresión de la política de fila depende solo de columnas de ORDER BY, seguirá aplicándose antes de FINAL como optimización,
ya que ese filtrado no puede afectar al resultado de la deduplicación.

Valores posibles:

* 0 — La política de fila y PREWHERE se aplican antes de FINAL (predeterminado).
* 1 — La política de fila y PREWHERE se aplican después de FINAL.

<div id="apply_settings_from_server">
  ## apply\_settings\_from\_server
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "El código del lado del cliente (p. ej., el análisis de la entrada de INSERT y el formateo de salida de la consulta) usará la misma configuración que el servidor, incluida la configuración del servidor."}]}]} />

Indica si el cliente debe aceptar la configuración del servidor.

Esto solo afecta a las operaciones realizadas del lado del cliente, en particular el análisis de los datos de entrada de INSERT y el formateo del resultado de la consulta. La mayor parte de la ejecución de la consulta ocurre en el servidor y no se ve afectada por esta configuración.

Normalmente, esta configuración debe establecerse en el perfil de usuario (`users.xml` o consultas como `ALTER USER`), no a través del cliente (argumentos de la línea de comandos del cliente, consulta `SET` o sección `SETTINGS` de la consulta `SELECT`). A través del cliente puede cambiarse a false, pero no puede cambiarse a true (porque el servidor no enviará la configuración si el perfil de usuario tiene `apply_settings_from_server = false`).

Tenga en cuenta que, inicialmente (24.12), existía una configuración de servidor (`send_settings_to_client`), pero más tarde fue reemplazada por esta configuración de cliente para mejorar la usabilidad.

<div id="archive_adaptive_buffer_max_size_bytes">
  ## archive\_adaptive\_buffer\_max\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "8388608"},{"label": "Nueva configuración"}]}]} />

Limita el tamaño máximo del búfer adaptativo utilizado al escribir en archivos de archivado (por ejemplo, archivos tar

<div id="arrow_flight_request_descriptor_type">
  ## arrow\_flight\_request\_descriptor\_type
</div>

<SettingsInfoBlock type="ArrowFlightDescriptorType" default_value="path" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "path"},{"label": "Nueva configuración. Tipo de descriptor que se utiliza para las solicitudes de Arrow Flight: 'path' o 'command'. Dremio requiere 'command'."}]}]} />

Tipo de descriptor que se utiliza para las solicitudes de Arrow Flight. 'path' envía el nombre del conjunto de datos como descriptor de ruta. 'command' envía una consulta SQL como descriptor de comando (obligatorio para Dremio).

Valores posibles:

* 'path' — Usa FlightDescriptor::Path (predeterminado; funciona con la mayoría de los servidores Arrow Flight)
* 'command' — Usa FlightDescriptor::Command con una consulta SELECT (obligatorio para Dremio)

<div id="ast_fuzzer_any_query">
  ## ast\_fuzzer\_any\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración que permite aplicar fuzzing a todos los tipos de consultas, no solo a las de solo lectura."}]}]} />

Si es false (valor predeterminado), el AST fuzzer del servidor (controlado por `ast_fuzzer_runs`) solo aplica fuzzing a consultas de solo lectura (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). Si es true, se aplica fuzzing a todos los tipos de consultas, incluidas DDL e INSERT.

<div id="ast_fuzzer_runs">
  ## ast\_fuzzer\_runs
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración para habilitar el AST fuzzer del servidor."}]}]} />

Habilita el AST fuzzer del servidor, que ejecuta consultas aleatorias después de cada consulta normal y descarta sus resultados.

* 0: deshabilitado (predeterminado).
* Un valor entre 0 y 1 (sin incluirlos): probabilidad de ejecutar una sola consulta generada por el fuzzer.
* Un valor >= 1: número de consultas generadas por el fuzzer que se ejecutarán por cada consulta normal.

El fuzzer acumula fragmentos de AST de todas las consultas de todas las sesiones, lo que produce mutaciones cada vez más interesantes con el tiempo. Las consultas generadas por el fuzzer que fallan se descartan silenciosamente; los resultados nunca se devuelven al cliente.

<div id="asterisk_include_alias_columns">
  ## asterisk\_include\_alias\_columns
</div>

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

Incluye las columnas [ALIAS](/es/reference/statements/create/table#alias) en las consultas con comodín (`SELECT *`).

Valores posibles:

* 0 - deshabilitado
* 1 - habilitado

<div id="asterisk_include_materialized_columns">
  ## asterisk\_include\_materialized\_columns
</div>

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

Incluye columnas [MATERIALIZED](/es/reference/statements/create/view#materialized-view) en consultas con comodín (`SELECT *`).

Posibles valores:

* 0 - deshabilitado
* 1 - habilitado

<div id="asterisk_include_virtual_columns">
  ## asterisk\_include\_virtual\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Incluye las columnas virtuales en la consulta con comodín (`SELECT *`).

Posibles valores:

* 0 - deshabilitado
* 1 - habilitado

<div id="async_insert">
  ## async\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Habilita las inserciones asíncronas de forma predeterminada."}]}]} />

Si es true, los datos de la consulta INSERT se almacenan en una cola y más tarde se escriben en la tabla en segundo plano. Si wait\_for\_async\_insert es false, la consulta INSERT se procesa casi al instante; de lo contrario, el cliente esperará hasta que los datos se escriban en la tabla

<div id="async_insert_busy_timeout_decrease_rate">
  ## async\_insert\_busy\_timeout\_decrease\_rate
</div>

<SettingsInfoBlock type="Double" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0.2"},{"label": "La tasa de crecimiento exponencial con la que se reduce el tiempo de espera de inserción asíncrona adaptativo"}]}]} />

La tasa de crecimiento exponencial con la que se reduce el tiempo de espera de inserción asíncrona adaptativo

<div id="async_insert_busy_timeout_increase_rate">
  ## async\_insert\_busy\_timeout\_increase\_rate
</div>

<SettingsInfoBlock type="Double" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0.2"},{"label": "La tasa de crecimiento exponencial a la que aumenta el tiempo de espera adaptativo de inserción asíncrona"}]}]} />

La tasa de crecimiento exponencial a la que aumenta el tiempo de espera adaptativo de inserción asíncrona

<div id="async_insert_busy_timeout_max_ms">
  ## async\_insert\_busy\_timeout\_max\_ms
</div>

**Alias**: `async_insert_busy_timeout_ms`

<SettingsInfoBlock type="Milisegundos" default_value="200" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "200"},{"label": "El valor mínimo del tiempo de espera de inserción asíncrona en milisegundos; async_insert_busy_timeout_ms es un alias de async_insert_busy_timeout_max_ms"}]}]} />

Tiempo máximo de espera antes de volcar los datos recopilados por consulta desde que apareció el primer dato.

Valor predeterminado de Cloud: `1000` (1s).

<div id="async_insert_busy_timeout_min_ms">
  ## async\_insert\_busy\_timeout\_min\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "50"},{"label": "El valor mínimo del tiempo de espera de la inserción asíncrona en milisegundos; también sirve como valor inicial, que puede aumentarse más adelante mediante el algoritmo adaptativo"}]}]} />

Si el ajuste automático está habilitado mediante async\_insert\_use\_adaptive\_busy\_timeout, es el tiempo mínimo de espera antes de volcar los datos recopilados por consulta desde que aparecieron los primeros datos. También sirve como valor inicial para el algoritmo adaptativo

<div id="async_insert_deduplicate">
  ## async\_insert\_deduplicate
</div>

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

Para las consultas INSERT asíncronas en la tabla replicada, especifica que debe realizarse la deduplicación de los bloques que se insertan

<div id="async_insert_max_data_size">
  ## async\_insert\_max\_data\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "10485760"},{"label": "El valor anterior parecía demasiado pequeño."}]}]} />

Tamaño máximo, en bytes, de los datos sin analizar recopilados por consulta antes de insertarse

Valor predeterminado de Cloud: `104857600` (100 MiB).

<div id="async_insert_max_query_number">
  ## async\_insert\_max\_query\_number
</div>

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

Número máximo de consultas de inserción antes de que se realice la inserción.
Solo surte efecto si la configuración [`async_insert_deduplicate`](#async_insert_deduplicate) es 1.

<div id="async_insert_poll_timeout_ms">
  ## async\_insert\_poll\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "10"},{"label": "Tiempo de espera en milisegundos para recuperar datos de la cola de inserción asíncrona"}]}]} />

Tiempo de espera para recuperar datos de la cola de inserción asíncrona

<div id="async_insert_use_adaptive_busy_timeout">
  ## async\_insert\_use\_adaptive\_busy\_timeout
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Usar timeout adaptativo por ocupación para inserciones asíncronas"}]}]} />

Si se establece en true, usa un timeout adaptativo por ocupación para las inserciones asíncronas

<div id="async_query_sending_for_remote">
  ## async\_query\_sending\_for\_remote
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "1"},{"label": "Crear conexiones y enviar la consulta de forma asíncrona entre segmentos"}]}]} />

Habilita la creación asíncrona de conexiones y el envío de la consulta mientras se ejecuta una consulta remota.

Habilitado de forma predeterminada.

<div id="async_socket_for_remote">
  ## async\_socket\_for\_remote
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.5"},{"label": "1"},{"label": "Se corrigen todos los problemas y se vuelven a activar de forma predeterminada las lecturas asíncronas desde el socket para las consultas remotas"}]}, {"id": "row-2","items": [{"label": "21.3"},{"label": "0"},{"label": "Se desactivan las lecturas asíncronas desde el socket para las consultas remotas debido a algunos problemas"}]}]} />

Habilita la lectura asíncrona desde el socket al ejecutar una consulta remota.

Habilitado de forma predeterminada.

<div id="automatic_parallel_replicas_min_bytes_per_replica">
  ## automatic\_parallel\_replicas\_min\_bytes\_per\_replica
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1048576"},{"label": "Mejor valor predeterminado según los resultados de las pruebas"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Umbral de bytes que se deben leer por réplica para habilitar automáticamente las réplicas paralelas (solo se aplica cuando `automatic_parallel_replicas_mode`=1). 0 significa que no hay umbral.
El número total de bytes que se deben leer se estima a partir de las estadísticas recopiladas.

<div id="automatic_parallel_replicas_mode">
  ## automatic\_parallel\_replicas\_mode
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita el cambio automático a la ejecución con réplicas paralelas en función de las estadísticas recopiladas. Requiere `enable_analyzer = 1`, `enable_parallel_replicas != 0`, `parallel_replicas_local_plan = 1` y que se proporcione `cluster_for_parallel_replicas`.
0 - deshabilitado, 1 - habilitado, 2 - solo está habilitada la recopilación de estadísticas (el cambio a la ejecución con réplicas paralelas está deshabilitado).

<div id="azure_allow_parallel_part_upload">
  ## azure\_allow\_parallel\_part\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "true"},{"label": "Usa varios hilos para la carga multiparte de Azure."}]}]} />

Usa varios hilos para la carga multiparte de Azure.

<div id="azure_check_objects_after_upload">
  ## azure\_check\_objects\_after\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Comprobar cada objeto cargado en Azure Blob Storage para asegurarse de que la carga se haya completado correctamente"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "Comprobar cada objeto cargado en Azure Blob Storage para asegurarse de que la carga se haya completado correctamente"}]}]} />

Comprobar cada objeto cargado en Azure Blob Storage para asegurarse de que la carga se haya completado correctamente

<div id="azure_connect_timeout_ms">
  ## azure\_connect\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1000"},{"label": "Nueva opción de configuración"}]}]} />

Tiempo de espera de conexión al host para discos de Azure.

<div id="azure_create_new_file_on_insert">
  ## azure\_create\_new\_file\_on\_insert
</div>

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

Habilita o deshabilita la creación de un nuevo archivo en cada operación de insert en las tablas del motor Azure

<div id="azure_ignore_file_doesnt_exist">
  ## azure\_ignore\_file\_doesnt\_exist
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite devolver 0 filas cuando los archivos solicitados no existen, en lugar de generar una excepción en el motor de tablas AzureBlobStorage"}]}]} />

Ignora la ausencia de un archivo si este no existe al leer ciertas claves.

Valores posibles:

* 1 — `SELECT` devuelve un resultado vacío.
* 0 — `SELECT` genera una excepción.

<div id="azure_list_object_keys_size">
  ## azure\_list\_object\_keys\_size
</div>

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

Número máximo de archivos que la solicitud ListObject puede devolver en un lote

<div id="azure_max_blocks_in_multipart_upload">
  ## azure\_max\_blocks\_in\_multipart\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "50000"},{"label": "Número máximo de bloques en una carga multiparte para Azure."}]}]} />

Número máximo de bloques en una carga multiparte para Azure.

<div id="azure_max_get_burst">
  ## azure\_max\_get\_burst
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Número máximo de solicitudes que pueden emitirse simultáneamente antes de alcanzar el límite de solicitudes por segundo. De forma predeterminada, (0) equivale a `azure_max_get_rps`

<div id="azure_max_get_rps">
  ## azure\_max\_get\_rps
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nuevo ajuste"}]}]} />

Límite de solicitudes GET por segundo en Azure antes de que se aplique throttling. Cero significa sin límite.

<div id="azure_max_inflight_parts_for_one_file">
  ## azure\_max\_inflight\_parts\_for\_one\_file
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "20"},{"label": "El número máximo de partes que se pueden cargar simultáneamente en una solicitud de carga multiparte. 0 significa que no hay límite."}]}]} />

El número máximo de partes que se pueden cargar simultáneamente en una solicitud de carga multiparte. 0 significa que no hay límite.

<div id="azure_max_put_burst">
  ## azure\_max\_put\_burst
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva opción de configuración"}]}]} />

Número máximo de solicitudes que pueden emitirse simultáneamente antes de alcanzar el límite de solicitudes por segundo. De forma predeterminada, (0) equivale a `azure_max_put_rps`

<div id="azure_max_put_rps">
  ## azure\_max\_put\_rps
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nuevo ajuste"}]}]} />

Límite de solicitudes PUT por segundo en Azure antes de aplicar throttling. Cero significa sin límite.

<div id="azure_max_redirects">
  ## azure\_max\_redirects
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "10"},{"label": "Nueva configuración"}]}]} />

Número máximo permitido de saltos de redirección de Azure.

<div id="azure_max_single_part_copy_size">
  ## azure\_max\_single\_part\_copy\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "268435456"},{"label": "El tamaño máximo del objeto que se puede copiar mediante una copia de una sola parte en Azure blob storage."}]}]} />

El tamaño máximo del objeto que se puede copiar mediante una copia de una sola parte en Azure blob storage.

<div id="azure_max_single_part_upload_size">
  ## azure\_max\_single\_part\_upload\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "33554432"},{"label": "Alineado con S3"}]}]} />

El tamaño máximo del objeto que se puede cargar mediante una carga de una sola parte en Azure Blob Storage.

<div id="azure_max_single_read_retries">
  ## azure\_max\_single\_read\_retries
</div>

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

El número máximo de reintentos durante una sola lectura desde Azure blob storage.

<div id="azure_max_unexpected_write_error_retries">
  ## azure\_max\_unexpected\_write\_error\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "4"},{"label": "El número máximo de reintentos en caso de errores inesperados durante la escritura en Azure blob storage"}]}]} />

El número máximo de reintentos en caso de errores inesperados durante la escritura en Azure blob storage

<div id="azure_max_upload_part_size">
  ## azure\_max\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "5368709120"},{"label": "El tamaño máximo de la parte que se va a subir durante una subida multiparte a Azure blob storage."}]}]} />

El tamaño máximo de la parte que se va a subir durante una subida multiparte a Azure blob storage.

<div id="azure_min_upload_part_size">
  ## azure\_min\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "16777216"},{"label": "El tamaño mínimo de la parte que se va a subir durante una carga multiparte en Azure blob storage."}]}]} />

El tamaño mínimo de la parte que se va a subir durante una carga multiparte en Azure blob storage.

<div id="azure_request_timeout_ms">
  ## azure\_request\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "30000"},{"label": "Nueva configuración"}]}]} />

Tiempo de espera por inactividad para el envío y la recepción de datos desde/hacia Azure. Se produce un error si una sola llamada TCP de lectura o escritura queda bloqueada durante este tiempo.

<div id="azure_sdk_max_retries">
  ## azure\_sdk\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "10"},{"label": "Número máximo de reintentos del SDK de Azure"}]}]} />

Número máximo de reintentos del SDK de Azure

<div id="azure_sdk_retry_initial_backoff_ms">
  ## azure\_sdk\_retry\_initial\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "10"},{"label": "Espera mínima entre reintentos en Azure SDK"}]}]} />

Espera mínima entre reintentos en Azure SDK

<div id="azure_sdk_retry_max_backoff_ms">
  ## azure\_sdk\_retry\_max\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1000"},{"label": "Backoff máximo entre reintentos en Azure SDK"}]}]} />

Backoff máximo entre reintentos en Azure SDK

<div id="azure_skip_empty_files">
  ## azure\_skip\_empty\_files
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite omitir archivos vacíos en el motor de tabla Azure"}]}]} />

Activa o desactiva la omisión de archivos vacíos en el motor S3.

Valores posibles:

* 0 — `SELECT` genera una excepción si el archivo vacío no es compatible con el formato solicitado.
* 1 — `SELECT` devuelve un resultado vacío para un archivo vacío.

<div id="azure_strict_upload_part_size">
  ## azure\_strict\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "El tamaño exacto de la parte que se va a subir durante una subida multiparte a Azure blob storage."}]}]} />

El tamaño exacto de la parte que se va a subir durante una subida multiparte a Azure blob storage.

<div id="azure_throw_on_zero_files_match">
  ## azure\_throw\_on\_zero\_files\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite lanzar un error cuando la solicitud ListObjects no coincide con ningún archivo en el motor AzureBlobStorage, en lugar de devolver un resultado de consulta vacío"}]}]} />

Lanza un error si no coincide ningún archivo según las reglas de expansión de glob.

Valores posibles:

* 1 — `SELECT` lanza una excepción.
* 0 — `SELECT` devuelve un resultado vacío.

<div id="azure_truncate_on_insert">
  ## azure\_truncate\_on\_insert
</div>

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

Activa o desactiva el truncado antes de insertar en las tablas del engine Azure.

<div id="azure_upload_part_size_multiply_factor">
  ## azure\_upload\_part\_size\_multiply\_factor
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "2"},{"label": "Multiplica azure_min_upload_part_size por este factor cada vez que se hayan cargado azure_multiply_parts_count_threshold partes en una única escritura en Azure blob storage."}]}]} />

Multiplica azure\_min\_upload\_part\_size por este factor cada vez que se hayan cargado azure\_multiply\_parts\_count\_threshold partes en una única escritura en Azure blob storage.

<div id="azure_upload_part_size_multiply_parts_count_threshold">
  ## azure\_upload\_part\_size\_multiply\_parts\_count\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "500"},{"label": "Cada vez que se cargue este número de partes en Azure blob storage, azure_min_upload_part_size se multiplica por azure_upload_part_size_multiply_factor."}]}]} />

Cada vez que se cargue este número de partes en Azure blob storage, azure\_min\_upload\_part\_size se multiplica por azure\_upload\_part\_size\_multiply\_factor.

<div id="azure_use_adaptive_timeouts">
  ## azure\_use\_adaptive\_timeouts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si se establece en `true`, en todas las solicitudes a Azure los dos primeros intentos se realizan con tiempos de espera de envío y recepción reducidos.
Si se establece en `false`, todos los intentos se realizan con tiempos de espera idénticos.

<div id="backup_restore_batch_size_for_keeper_multi">
  ## backup\_restore\_batch\_size\_for\_keeper\_multi
</div>

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

Tamaño máximo del lote para una solicitud múltiple a \[Zoo]Keeper durante la copia de seguridad o la restauración

<div id="backup_restore_batch_size_for_keeper_multiread">
  ## backup\_restore\_batch\_size\_for\_keeper\_multiread
</div>

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

Tamaño máximo del lote de una solicitud de multilectura a \[Zoo]Keeper durante la copia de seguridad o la restauración

<div id="backup_restore_failure_after_host_disconnected_for_seconds">
  ## backup\_restore\_failure\_after\_host\_disconnected\_for\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "3600"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "3600"},{"label": "Nueva configuración."}]}]} />

Si, durante una operación BACKUP ON CLUSTER o RESTORE ON CLUSTER, un host no vuelve a crear su nodo efímero 'alive' en ZooKeeper dentro de este intervalo, toda la copia de seguridad o restauración se considera fallida.
Este valor debe ser mayor que cualquier tiempo razonable que un host pueda tardar en volver a conectarse a ZooKeeper después de un fallo.
Cero significa sin límite.

<div id="backup_restore_finish_timeout_after_error_sec">
  ## backup\_restore\_finish\_timeout\_after\_error\_sec
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "180"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "180"},{"label": "Nueva configuración."}]}]} />

Cuánto tiempo debe esperar el iniciador para que otros hosts reaccionen al nodo 'error' y detengan su trabajo en la operación actual BACKUP ON CLUSTER o RESTORE ON CLUSTER.

<div id="backup_restore_keeper_fault_injection_probability">
  ## backup\_restore\_keeper\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Probabilidad aproximada de fallo de una solicitud de Keeper durante una copia de seguridad o una restauración. El valor válido se encuentra en el intervalo \[0.0f, 1.0f]

<div id="backup_restore_keeper_fault_injection_seed">
  ## backup\_restore\_keeper\_fault\_injection\_seed
</div>

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

0: semilla aleatoria; en caso contrario, el valor de la configuración

<div id="backup_restore_keeper_max_retries">
  ## backup\_restore\_keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1000"},{"label": "Debe ser lo bastante grande como para que toda la operación BACKUP o RESTORE no falle debido a un fallo temporal de [Zoo]Keeper durante su ejecución."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1000"},{"label": "Debe ser lo bastante grande como para que toda la operación BACKUP o RESTORE no falle debido a un fallo temporal de [Zoo]Keeper durante su ejecución."}]}]} />

Número máximo de reintentos para operaciones de \[Zoo]Keeper durante una operación BACKUP o RESTORE.
Debe ser lo bastante grande como para que toda la operación no falle debido a un fallo temporal de \[Zoo]Keeper.

<div id="backup_restore_keeper_max_retries_while_handling_error">
  ## backup\_restore\_keeper\_max\_retries\_while\_handling\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "20"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "20"},{"label": "Nueva configuración."}]}]} />

Número máximo de reintentos para las operaciones de \[Zoo]Keeper al gestionar un error en una operación BACKUP ON CLUSTER o RESTORE ON CLUSTER.

<div id="backup_restore_keeper_max_retries_while_initializing">
  ## backup\_restore\_keeper\_max\_retries\_while\_initializing
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "20"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "20"},{"label": "Nueva configuración."}]}]} />

Número máximo de reintentos para las operaciones de \[Zoo]Keeper durante la inicialización de una operación BACKUP ON CLUSTER o RESTORE ON CLUSTER.

<div id="backup_restore_keeper_retry_initial_backoff_ms">
  ## backup\_restore\_keeper\_retry\_initial\_backoff\_ms
</div>

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

Tiempo de espera del backoff inicial para las operaciones de \[Zoo]Keeper durante la copia de seguridad o la restauración

<div id="backup_restore_keeper_retry_max_backoff_ms">
  ## backup\_restore\_keeper\_retry\_max\_backoff\_ms
</div>

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

Tiempo de espera máximo del backoff para las operaciones de \[Zoo]Keeper durante la copia de seguridad o la restauración

Valor predeterminado de Cloud: `60000`.

<div id="backup_restore_keeper_value_max_size">
  ## backup\_restore\_keeper\_value\_max\_size
</div>

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

Tamaño máximo de los datos de un nodo de \[Zoo]Keeper durante la restauración de una copia de seguridad

<div id="backup_restore_s3_retry_attempts">
  ## backup\_restore\_s3\_retry\_attempts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1000"},{"label": "Configuración para Aws::Client::RetryStrategy. Aws::Client gestiona los reintentos por sí mismo; 0 significa que no habrá reintentos. Solo se aplica a la copia de seguridad/restauración."}]}]} />

Configuración para Aws::Client::RetryStrategy. Aws::Client gestiona los reintentos por sí mismo; 0 significa que no habrá reintentos. Solo se aplica a la copia de seguridad/restauración.

<div id="backup_restore_s3_retry_initial_backoff_ms">
  ## backup\_restore\_s3\_retry\_initial\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "25"},{"label": "Nueva configuración"}]}]} />

Retraso de backoff inicial, en milisegundos, antes del primer reintento durante la copia de seguridad y la restauración. Cada reintento posterior aumenta el retraso de forma exponencial, hasta el máximo especificado por `backup_restore_s3_retry_max_backoff_ms`

<div id="backup_restore_s3_retry_jitter_factor">
  ## backup\_restore\_s3\_retry\_jitter\_factor
</div>

<SettingsInfoBlock type="Float" default_value="0.1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0.1"},{"label": "Nueva configuración"}]}]} />

Factor de jitter aplicado al retraso de backoff de reintento en Aws::Client::RetryStrategy durante las operaciones de copia de seguridad y restauración. El retraso de backoff calculado se multiplica por un factor aleatorio en el intervalo \[1.0, 1.0 + jitter], hasta un máximo de `backup_restore_s3_retry_max_backoff_ms`. Debe estar en el intervalo \[0.0, 1.0]

<div id="backup_restore_s3_retry_max_backoff_ms">
  ## backup\_restore\_s3\_retry\_max\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "5000"},{"label": "Nueva configuración"}]}]} />

Retraso máximo, en milisegundos, entre reintentos durante las operaciones de copia de seguridad y restauración.

<div id="backup_slow_all_threads_after_retryable_s3_error">
  ## backup\_slow\_all\_threads\_after\_retryable\_s3\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "Desactivar la configuración de forma predeterminada"}]}]} />

Cuando se establece en `true`, todos los hilos que ejecutan solicitudes a S3 hacia el mismo endpoint de backup se ralentizan
después de que una sola solicitud a S3 encuentre un error de S3 que permita reintentos, como 'Slow Down'.
Cuando se establece en `false`, cada hilo gestiona el backoff de las solicitudes a S3 de forma independiente de los demás.

<div id="cache_warmer_threads">
  ## cache\_warmer\_threads
</div>

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

Solo tiene efecto en ClickHouse Cloud. Número de hilos en segundo plano para descargar de forma especulativa nuevas partes de datos en la caché del sistema de archivos cuando [cache\_populated\_by\_fetch](/es/reference/settings/merge-tree-settings#cache_populated_by_fetch) está habilitado. Cero para deshabilitarlo.

<div id="calculate_text_stack_trace">
  ## calculate\_text\_stack\_trace
</div>

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

Calcula la traza de pila en texto en caso de excepciones durante la ejecución de la consulta. Este es el valor predeterminado. Requiere búsquedas de símbolos que pueden ralentizar las pruebas de fuzzing cuando se ejecuta una gran cantidad de consultas incorrectas. En condiciones normales, no debería desactivar esta opción.

<div id="cancel_http_readonly_queries_on_client_close">
  ## cancel\_http\_readonly\_queries\_on\_client\_close
</div>

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

Cancela las consultas HTTP de solo lectura (p. ej., `SELECT`) cuando el cliente cierra la conexión sin esperar la respuesta.

Valor predeterminado en Cloud: `1`.

<div id="cast_ipv4_ipv6_default_on_conversion_error">
  ## cast\_ipv4\_ipv6\_default\_on\_conversion\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.3"},{"label": "0"},{"label": "Hace que las funciones cast(value, 'IPv4') y cast(value, 'IPv6') se comporten igual que las funciones toIPv4 y toIPv6"}]}]} />

Los operadores CAST a IPv4 y CAST al tipo IPv6, así como las funciones toIPv4 y toIPv6, devolverán el valor predeterminado en lugar de lanzar una excepción si se produce un error de conversión.

<div id="cast_keep_nullable">
  ## cast\_keep\_nullable
</div>

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

Habilita o deshabilita la conservación del tipo de dato `Nullable` en las operaciones [CAST](/es/reference/functions/regular-functions/type-conversion-functions#CAST).

Cuando esta configuración está habilitada y el argumento de la función `CAST` es `Nullable`, el resultado también se convierte al tipo `Nullable`. Cuando la configuración está deshabilitada, el resultado siempre tiene exactamente el tipo de destino.

Posibles valores:

* 0 — El resultado de `CAST` tiene exactamente el tipo de destino especificado.
* 1 — Si el tipo del argumento es `Nullable`, el resultado de `CAST` se convierte en `Nullable(DestinationDataType)`.

**Ejemplos**

La siguiente consulta produce exactamente el tipo de dato de destino:

```sql theme={null}
SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);
```

Resultado:

```text theme={null}
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32                                             │
└───┴───────────────────────────────────────────────────┘
```

La siguiente consulta produce la modificación `Nullable` en el tipo de dato de destino:

```sql theme={null}
SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);
```

Resultado:

```text theme={null}
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32)                                   │
└───┴───────────────────────────────────────────────────┘
```

**Ver también**

* [CAST](/es/reference/functions/regular-functions/type-conversion-functions#CAST) función

<div id="cast_string_to_date_time_mode">
  ## cast\_string\_to\_date\_time\_mode
</div>

<SettingsInfoBlock type="DateTimeInputFormat" default_value="best_effort" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "best_effort"},{"label": "Mejora la usabilidad"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "basic"},{"label": "Permite usar un modo de análisis de DateTime diferente al convertir de String a DateTime"}]}]} />

Permite elegir un parser para la representación textual de fecha y hora al convertir desde String.

Posibles valores:

* `'best_effort'` — Habilita el análisis ampliado.

  ClickHouse puede analizar el formato básico `YYYY-MM-DD HH:MM:SS` y todos los formatos de fecha y hora [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Por ejemplo, `'2018-06-08T01:02:03.000Z'`.

* `'best_effort_us'` — Similar a `best_effort` (consulte la diferencia en [parseDateTimeBestEffortUS](/es/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS)

* `'basic'` — Usa el parser básico.

  ClickHouse solo puede analizar el formato básico `YYYY-MM-DD HH:MM:SS` o `YYYY-MM-DD`. Por ejemplo, `2019-08-20 10:18:56` o `2019-08-20`.

Vea también:

* [Tipo de dato DateTime.](/es/reference/data-types/datetime)
* [Funciones para trabajar con fechas y horas.](/es/reference/functions/regular-functions/date-time-functions)

<div id="cast_string_to_dynamic_use_inference">
  ## cast\_string\_to\_dynamic\_use\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "Se añade una configuración para permitir convertir String a Dynamic mediante análisis sintáctico"}]}]} />

Usar la inferencia de tipos durante la conversión de String a Dynamic

<div id="cast_string_to_variant_use_inference">
  ## cast\_string\_to\_variant\_use\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Nueva configuración para habilitar o deshabilitar la inferencia de tipos durante CAST de String a Variant"}]}]} />

Utiliza la inferencia de tipos durante la conversión de String a Variant.

<div id="check_named_collection_dependencies">
  ## check\_named\_collection\_dependencies
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Nueva configuración para comprobar si eliminar una colección nombrada provocaría fallos en las tablas que dependen de ella."}]}]} />

Comprueba que DROP NAMED COLLECTION no provoque fallos en las tablas que dependen de ella

<div id="check_query_single_value_result">
  ## check\_query\_single\_value\_result
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Se cambió esta configuración para que CHECK TABLE sea más útil"}]}]} />

Define el nivel de detalle del resultado de la consulta [CHECK TABLE](/es/reference/statements/check-table) para los motores de la familia `MergeTree` .

Valores posibles:

* 0 — la consulta muestra un estado de verificación para cada parte de datos individual de una tabla.
* 1 — la consulta muestra el estado general de verificación de la tabla.

<div id="check_referential_table_dependencies">
  ## check\_referential\_table\_dependencies
</div>

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

Compruebe que la consulta DDL (como DROP TABLE o RENAME) no interrumpa las dependencias referenciales

<div id="check_table_dependencies">
  ## check\_table\_dependencies
</div>

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

Verifica que una consulta DDL (como DROP TABLE o RENAME) no rompa las dependencias

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

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

Valida las sumas de verificación durante la lectura. Está habilitada de forma predeterminada y siempre debería estarlo en producción. No espere obtener ningún beneficio al deshabilitar este ajuste. Solo puede usarse para experimentos y benchmarks. Este ajuste solo se aplica a tablas de la familia MergeTree. Las sumas de verificación siempre se validan para otros motores de tabla y al recibir datos a través de la red.

<div id="cloud_mode">
  ## cloud\_mode
</div>

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

Modo Cloud

Valor predeterminado en Cloud: `1`.

<div id="cloud_mode_database_engine">
  ## cloud\_mode\_database\_engine
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Una configuración para ClickHouse Cloud"}]}]} />

El motor de base de datos permitido en Cloud. 1 - reescribe las DDL para usar una base de datos Replicated, 2 - reescribe las DDL para usar una base de datos Shared

Valor predeterminado de Cloud: `2`.

<div id="cloud_mode_engine">
  ## cloud\_mode\_engine
</div>

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

La familia de motores permitida en Cloud.

* 0 - permitir todo
* 1 - reescribir las DDLs para usar \*ReplicatedMergeTree
* 2 - reescribir las DDLs para usar SharedMergeTree
* 3 - reescribir las DDLs para usar SharedMergeTree, excepto cuando se especifique explícitamente un disco remoto
* 4 - igual que 3, y además usar Alias en lugar de Distributed (la tabla Alias apuntará a la tabla de destino de la tabla Distributed, por lo que usará la tabla local correspondiente)

UInt64 para minimizar la parte pública

Valor predeterminado de Cloud: `2`.

<div id="cluster_for_parallel_replicas">
  ## cluster\_for\_parallel\_replicas
</div>

Clúster para un segmento en el que se encuentra el servidor actual

Valor predeterminado de Cloud: `default`.

<div id="cluster_function_process_archive_on_multiple_nodes">
  ## cluster\_function\_process\_archive\_on\_multiple\_nodes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si se establece en `true`, mejora el rendimiento al procesar archivos comprimidos en funciones de clúster. Debe establecerse en `false` para mantener la compatibilidad y evitar errores durante la actualización a 25.7+ si se usan funciones de clúster con archivos comprimidos en versiones anteriores.

<div id="cluster_table_function_buckets_batch_size">
  ## cluster\_table\_function\_buckets\_batch\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Define el tamaño aproximado de un lote (en bytes) que se usa en el procesamiento distribuido de tareas en funciones de tabla de clúster con granularidad de división `bucket`. El sistema acumula datos hasta alcanzar al menos esta cantidad. El tamaño real puede ser ligeramente mayor para ajustarse a los límites de los datos.

<div id="cluster_table_function_split_granularity">
  ## cluster\_table\_function\_split\_granularity
</div>

<SettingsInfoBlock type="ObjectStorageGranularityLevel" default_value="file" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "file"},{"label": "Nueva configuración."}]}]} />

Controla cómo se dividen los datos en tareas al ejecutar una CLUSTER TABLE FUNCTION.

Esta configuración define la granularidad de la distribución del trabajo en el cluster:

* `file` — cada tarea procesa un archivo completo.
* `bucket` — las tareas se crean por cada bloque de datos interno dentro de un archivo (por ejemplo, grupos de filas de Parquet).

Elegir una granularidad más fina (como `bucket`) puede mejorar el paralelismo al trabajar con una cantidad reducida de archivos grandes.
Por ejemplo, si un archivo Parquet contiene varios grupos de filas, habilitar la granularidad `bucket` permite que cada grupo se procese de forma independiente en distintos workers.

<div id="collect_hash_table_stats_during_aggregation">
  ## collect\_hash\_table\_stats\_during\_aggregation
</div>

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

Activa la recopilación de estadísticas de la tabla hash para optimizar la asignación de memoria

<div id="collect_hash_table_stats_during_joins">
  ## collect\_hash\_table\_stats\_during\_joins
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Activa la recopilación de estadísticas de la tabla hash para optimizar la asignación de memoria

<div id="compatibility">
  ## compatibility
</div>

La configuración `compatibility` hace que ClickHouse use la configuración predeterminada de una versión anterior de ClickHouse, indicada en este ajuste.

Si algunos ajustes tienen valores distintos de los predeterminados, esos valores se respetan (solo los ajustes que no se han modificado se ven afectados por la configuración `compatibility`).

Esta configuración acepta un número de versión de ClickHouse como cadena, por ejemplo `22.3` o `22.8`. Un valor vacío significa que esta configuración está deshabilitada.

Deshabilitada de forma predeterminada.

<Note>
  En ClickHouse Cloud, la configuración de compatibilidad predeterminada a nivel de servicio debe establecerla ClickHouse Cloud Support. [Abra un caso](https://clickhouse.cloud/support) para solicitarlo.
  Sin embargo, la configuración `compatibility` se puede sobrescribir a nivel de usuario, rol, perfil, consulta o sesión mediante los mecanismos de configuración estándar de ClickHouse, como `SET compatibility = '22.3'` en una sesión o `SETTINGS compatibility = '22.3'` en una consulta.
</Note>

<div id="compatibility_ignore_auto_increment_in_create_table">
  ## compatibility\_ignore\_auto\_increment\_in\_create\_table
</div>

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

Ignora la palabra clave AUTO\_INCREMENT en la declaración de la columna si es true; de lo contrario, devuelve un error. Esto simplifica la migración desde MySQL

<div id="compatibility_ignore_collation_in_create_table">
  ## compatibility\_ignore\_collation\_in\_create\_table
</div>

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

Compatibilidad: ignorar la cotejación en CREATE TABLE

<div id="compatibility_s3_presigned_url_query_in_path">
  ## compatibility\_s3\_presigned\_url\_query\_in\_path
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Compatibilidad: cuando está habilitado, integra los parámetros de consulta de la URL prefirmada (p. ej., X-Amz-\*) en la clave de S3 (comportamiento heredado),
por lo que '?' actúa como un comodín en la ruta. Cuando está deshabilitado (valor predeterminado), los parámetros de consulta de la URL prefirmada se mantienen en la cadena de consulta de la URL
para evitar interpretar '?' como un comodín.

<div id="compile_aggregate_expressions">
  ## compile\_aggregate\_expressions
</div>

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

Habilita o deshabilita la compilación JIT de las funciones de agregación en código nativo. Habilitar esta opción puede mejorar el rendimiento.

Valores posibles:

* 0 — La agregación se realiza sin compilación JIT.
* 1 — La agregación se realiza con compilación JIT.

**Vea también**

* [min\_count\_to\_compile\_aggregate\_expression](#min_count_to_compile_aggregate_expression)

<div id="compile_expressions">
  ## compile\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Creemos que la infraestructura LLVM que hay detrás del compilador JIT es lo suficientemente estable como para habilitar esta configuración de forma predeterminada."}]}]} />

Compila algunas funciones escalares y operadores en código nativo.

<div id="compile_sort_description">
  ## compile\_sort\_description
</div>

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

Compila la descripción de ordenación en código nativo.

<div id="connect_timeout">
  ## connect\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="10" />

Tiempo de espera de conexión si no hay réplicas.

<div id="connect_timeout_with_failover_ms">
  ## connect\_timeout\_with\_failover\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1000"},{"label": "Se aumenta el tiempo de espera de conexión predeterminado debido a la conexión asíncrona"}]}]} />

El tiempo de espera, en milisegundos, para conectarse a un servidor remoto con un motor de tabla Distributed, si se usan las secciones 'shard' y 'replica' en la definición del clúster.
Si no se logra la conexión, se realizan varios intentos para conectarse a distintas réplicas.

<div id="connect_timeout_with_failover_secure_ms">
  ## connect\_timeout\_with\_failover\_secure\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1000"},{"label": "Aumenta el tiempo de espera predeterminado para conexiones seguras debido a la conexión asíncrona"}]}]} />

Tiempo de espera de conexión para seleccionar la primera réplica en buen estado (para conexiones seguras).

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="0" />

El tiempo de espera, en milisegundos, de una conexión cuando el pool de conexiones está lleno.

Valores posibles:

* Entero positivo.
* 0 — Tiempo de espera infinito.

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

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

El número máximo de intentos de conexión con cada réplica para el engine de tabla Distributed.

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

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

Cuando se establece en `true`, una consulta `SELECT` se convertirá en forma normal conjuntiva (CNF). En algunos casos, reescribir una consulta en CNF puede ejecutarse más rápido (consulta este [issue de GitHub](https://github.com/ClickHouse/ClickHouse/issues/11749) para obtener una explicación).

Por ejemplo, observa cómo la siguiente consulta `SELECT` no se modifica (comportamiento predeterminado):

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;
```

El resultado es:

```response theme={null}
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x                                                       │
│ FROM                                                           │
│ (                                                              │
│     SELECT number AS x                                         │
│     FROM numbers(20)                                           │
│     WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a                                                         │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))     │
│ SETTINGS convert_query_to_cnf = 0                              │
└────────────────────────────────────────────────────────────────┘
```

Establezcamos `convert_query_to_cnf` en `true` y veamos qué cambia:

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;
```

Observe que la cláusula `WHERE` se reescribe en CNF, pero el conjunto de resultados sigue siendo idéntico: la lógica booleana no cambia:

```response theme={null}
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x                                                                                                              │
│ FROM                                                                                                                  │
│ (                                                                                                                     │
│     SELECT number AS x                                                                                                │
│     FROM numbers(20)                                                                                                  │
│     WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a                                                                                                                │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5))     │
│ SETTINGS convert_query_to_cnf = 1                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Valores posibles: true, false

<div id="correlated_subqueries_default_join_kind">
  ## correlated\_subqueries\_default\_join\_kind
</div>

<SettingsInfoBlock type="DecorrelationJoinKind" default_value="right" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "right"},{"label": "Nueva configuración. Tipo de JOIN predeterminado para el plan de consulta decorrelacionado."}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "right"},{"label": "Nueva configuración. Tipo de JOIN predeterminado para el plan de consulta decorrelacionado."}]}]} />

Controla el tipo de JOIN del plan de consulta decorrelacionado. El valor predeterminado es `right`, lo que significa que el plan decorrelacionado contendrá RIGHT JOINs con la entrada de la subconsulta en el lado derecho.

Valores posibles:

* `left` - El proceso de decorrelación producirá LEFT JOINs y la tabla de entrada aparecerá en el lado izquierdo.
* `right` - El proceso de decorrelación producirá RIGHT JOINs y la tabla de entrada aparecerá en el lado derecho.

<div id="correlated_subqueries_substitute_equivalent_expressions">
  ## correlated\_subqueries\_substitute\_equivalent\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "Nueva configuración para la optimización de la planificación de subconsultas correlacionadas."}]}]} />

Usa expresiones de filtro para inferir expresiones equivalentes y sustituirlas en lugar de crear un CROSS JOIN.

<div id="correlated_subqueries_use_in_memory_buffer">
  ## correlated\_subqueries\_use\_in\_memory\_buffer
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Usar un búfer en memoria para la entrada de subconsultas correlacionadas de forma predeterminada."}]}]} />

Usa un búfer en memoria para la entrada de subconsultas correlacionadas a fin de evitar su evaluación repetida.

<div id="count_distinct_implementation">
  ## count\_distinct\_implementation
</div>

<SettingsInfoBlock type="String" default_value="uniqExact" />

Especifica cuál de las funciones `uniq*` debe usarse para implementar la construcción [COUNT(DISTINCT ...)](/es/reference/functions/aggregate-functions/count).

Valores posibles:

* [uniq](/es/reference/functions/aggregate-functions/uniq)
* [uniqCombined](/es/reference/functions/aggregate-functions/uniqCombined)
* [uniqCombined64](/es/reference/functions/aggregate-functions/uniqCombined64)
* [uniqHLL12](/es/reference/functions/aggregate-functions/uniqHLL12)
* [uniqExact](/es/reference/functions/aggregate-functions/uniqExact)

<div id="count_distinct_optimization">
  ## count\_distinct\_optimization
</div>

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

Reescribe count distinct como una subconsulta con group by

<div id="count_matches_stop_at_empty_match">
  ## count\_matches\_stop\_at\_empty\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Deja de contar cuando un patrón produce una coincidencia de longitud cero en la función `countMatches`.

<div id="create_if_not_exists">
  ## create\_if\_not\_exists
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Activa `IF NOT EXISTS` para la instrucción `CREATE` de forma predeterminada. Si se especifica esta configuración o `IF NOT EXISTS`, y ya existe una tabla con el nombre indicado, no se lanzará ninguna excepción.

<div id="create_index_ignore_unique">
  ## create\_index\_ignore\_unique
</div>

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

Ignora la palabra clave UNIQUE en CREATE UNIQUE INDEX. Diseñado para pruebas de compatibilidad con SQL.

<div id="create_replicated_merge_tree_fault_injection_probability">
  ## create\_replicated\_merge\_tree\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

La probabilidad de que se inyecte un fallo durante la creación de la tabla después de crear los metadatos en ZooKeeper

<div id="create_table_empty_primary_key_by_default">
  ## create\_table\_empty\_primary\_key\_by\_default
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Mayor facilidad de uso"}]}]} />

Permite crear tablas \*MergeTree con una clave primaria vacía cuando no se especifican ORDER BY ni PRIMARY KEY

<div id="cross_join_min_bytes_to_compress">
  ## cross\_join\_min\_bytes\_to\_compress
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "1073741824"},{"label": "Tamaño mínimo del bloque que se debe comprimir en CROSS JOIN. Un valor de cero significa desactivar este umbral. Este bloque se comprime cuando se alcanza cualquiera de los dos umbrales (por filas o por bytes)."}]}]} />

Tamaño mínimo del bloque que se debe comprimir en CROSS JOIN. Un valor de cero significa desactivar este umbral. Este bloque se comprime cuando se alcanza cualquiera de los dos umbrales (por filas o por bytes).

<div id="cross_join_min_rows_to_compress">
  ## cross\_join\_min\_rows\_to\_compress
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "10000000"},{"label": "Número mínimo de filas para comprimir el bloque en CROSS JOIN. Un valor de cero significa deshabilitar este umbral. Este bloque se comprime cuando se alcanza cualquiera de los dos umbrales (por filas o por bytes)."}]}]} />

Número mínimo de filas para comprimir el bloque en CROSS JOIN. Un valor de cero significa deshabilitar este umbral. Este bloque se comprime cuando se alcanza cualquiera de los dos umbrales (por filas o por bytes).

<div id="cross_to_inner_join_rewrite">
  ## cross\_to\_inner\_join\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "2"},{"label": "Forzar la reescritura de comma join a inner join"}]}]} />

Usa inner join en lugar de comma/cross join si hay expresiones de join en la sección WHERE. Valores: 0 - sin reescritura, 1 - aplicar si es posible para comma/cross, 2 - forzar la reescritura de todos los comma joins, cross - si es posible

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

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

Hace que los tipos de datos sin modificadores explícitos [NULL o NOT NULL](/es/reference/statements/create/table#null-or-not-null-modifiers) en la definición de columnas sean [Nullable](/es/reference/data-types/nullable).

Valores posibles:

* 1 — Los tipos de datos en las definiciones de columna se establecen como `Nullable` de forma predeterminada.
* 0 — Los tipos de datos en las definiciones de columna se establecen como no `Nullable` de forma predeterminada.

<div id="database_atomic_wait_for_drop_and_detach_synchronously">
  ## database\_atomic\_wait\_for\_drop\_and\_detach\_synchronously
</div>

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

Añade un modificador `SYNC` a todas las consultas `DROP` y `DETACH`.

Valores posibles:

* 0 — Las consultas se ejecutarán de forma diferida.
* 1 — Las consultas se ejecutarán sin demora.

<div id="database_datalake_require_metadata_access">
  ## database\_datalake\_require\_metadata\_access
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Indica si se debe lanzar un error o no cuando no se tienen permisos para obtener los metadatos de la tabla en el motor de base de datos DataLakeCatalog.

<div id="database_replicated_allow_explicit_uuid">
  ## database\_replicated\_allow\_explicit\_uuid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Se añadió un nuevo ajuste para impedir especificar explícitamente el UUID de la tabla"}]}]} />

0 - No permite especificar explícitamente UUIDs para las tablas en bases de datos Replicated. 1 - Lo permite. 2 - Lo permite, pero ignora el UUID especificado y genera uno aleatorio en su lugar.

<div id="database_replicated_allow_heavy_create">
  ## database\_replicated\_allow\_heavy\_create
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Las consultas DDL de larga duración (CREATE AS SELECT y POPULATE) para el motor de base de datos Replicated estaban prohibidas"}]}]} />

Permite las consultas DDL de larga duración (CREATE AS SELECT y POPULATE) en el motor de base de datos Replicated. Tenga en cuenta que puede bloquear la cola DDL durante mucho tiempo.

<div id="database_replicated_allow_only_replicated_engine">
  ## database\_replicated\_allow\_only\_replicated\_engine
</div>

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

Permite crear únicamente tablas Replicated en una base de datos con motor Replicated

Valor predeterminado de Cloud: `1`.

<div id="database_replicated_allow_replicated_engine_arguments">
  ## database\_replicated\_allow\_replicated\_engine\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "No permitir argumentos explícitos de forma predeterminada"}]}]} />

0 - No permitir especificar explícitamente la ruta de ZooKeeper ni el nombre de la réplica para las tablas \*MergeTree en bases de datos Replicated. 1 - Permitirlo. 2 - Permitirlo, pero ignorar la ruta especificada y usar en su lugar la predeterminada. 3 - Permitirlo y no registrar ninguna advertencia.

<div id="database_replicated_always_detach_permanently">
  ## database\_replicated\_always\_detach\_permanently
</div>

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

Ejecuta DETACH TABLE como DETACH TABLE PERMANENTLY si el engine de la base de datos es Replicated

<div id="database_replicated_enforce_synchronous_settings">
  ## database\_replicated\_enforce\_synchronous\_settings
</div>

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

Obliga a esperar de forma síncrona en algunas consultas (véase también database\_atomic\_wait\_for\_drop\_and\_detach\_synchronously, mutations\_sync, alter\_sync). No se recomienda habilitar estos ajustes.

<div id="database_replicated_initial_query_timeout_sec">
  ## database\_replicated\_initial\_query\_timeout\_sec
</div>

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

Establece cuánto tiempo debe esperar la consulta DDL inicial a que la base de datos Replicated procese las entradas previas de la cola DDL, en segundos.

Valores posibles:

* Entero positivo.
* 0 — Ilimitado.

<div id="database_shared_drop_table_delay_seconds">
  ## database\_shared\_drop\_table\_delay\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "28800"},{"label": "Nueva configuración."}]}]} />

El tiempo de espera, en segundos, antes de que una tabla eliminada se quite realmente de una base de datos Shared. Esto permite recuperar la tabla durante ese tiempo mediante la sentencia `UNDROP TABLE`.

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

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

Comprueba el desbordamiento de las operaciones aritméticas y de comparación de Decimal

<div id="deduplicate_blocks_in_dependent_materialized_views">
  ## deduplicate\_blocks\_in\_dependent\_materialized\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Habilita de forma predeterminada la deduplicación para las vistas materializadas dependientes."}]}]} />

Habilita o deshabilita la comprobación de deduplicación para las vistas materializadas que reciben datos de tablas Replicated\*.

Valores posibles:

0 — Deshabilitado.
1 — Habilitado.

Cuando está habilitado, ClickHouse realiza la deduplicación de bloques en las vistas materializadas que dependen de tablas Replicated\*.
Esta configuración es útil para garantizar que las vistas materializadas no contengan datos duplicados cuando la operación de inserción se reintenta debido a un fallo.

**Véase también**

* [Procesamiento de NULL en los operadores IN](/es/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<div id="deduplicate_insert">
  ## deduplicate\_insert
</div>

<SettingsInfoBlock type="DeduplicateInsertMode" default_value="enable" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "enable"},{"label": "Habilita de forma predeterminada la deduplicación para todos los inserts síncronos y asíncronos."}]}]} />

Habilita o deshabilita la deduplicación de bloques de `INSERT INTO` (para tablas Replicated\*).
Este ajuste sobrescribe los ajustes `insert_deduplicate` y `async_insert_deduplicate`.
Este ajuste tiene tres valores posibles:

* disable — La deduplicación está deshabilitada para la consulta `INSERT INTO`.
* enable — La deduplicación está habilitada para la consulta `INSERT INTO`.
* backward\_compatible\_choice — La deduplicación está habilitada si `insert_deduplicate` o `async_insert_deduplicate` están habilitados para el tipo de insert específico.

<div id="deduplicate_insert_select">
  ## deduplicate\_insert\_select
</div>

<SettingsInfoBlock type="DeduplicateInsertSelectMode" default_value="enable_when_possible" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "enable_when_possible"},{"label": "cambia el comportamiento predeterminado de deduplicate_insert_select a ENABLE_WHEN_POSSIBLE"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "enable_even_for_bad_queries"},{"label": "Nueva configuración, sustituye a insert_select_deduplicate"}]}]} />

Habilita o deshabilita la deduplicación de bloques de `INSERT SELECT` (para tablas Replicated\*).
Esta configuración anula `insert_deduplicate` y `deduplicate_insert` para las consultas `INSERT SELECT`.
Esta configuración tiene cuatro valores posibles:

* disable — La deduplicación está deshabilitada para la consulta `INSERT SELECT`.
* force\_enable — La deduplicación está habilitada para la consulta `INSERT SELECT`. Si el resultado de SELECT no es estable, se lanza una excepción.
* enable\_when\_possible — La deduplicación está habilitada si `insert_deduplicate` está habilitado y el resultado de SELECT es estable; de lo contrario, se deshabilita.
* enable\_even\_for\_bad\_queries - La deduplicación está habilitada si `insert_deduplicate` está habilitado. Si el resultado de SELECT no es estable, se registra una advertencia, pero la consulta se ejecuta con deduplicación. Esta opción es por compatibilidad con versiones anteriores. Considere usar otras opciones, ya que esta puede dar lugar a resultados inesperados.

<div id="default_materialized_view_sql_security">
  ## default\_materialized\_view\_sql\_security
</div>

<SettingsInfoBlock type="SQLSecurityType" default_value="DEFINER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "DEFINER"},{"label": "Permite establecer un valor predeterminado para la opción SQL SECURITY al crear una vista materializada"}]}]} />

Permite establecer un valor predeterminado para la opción SQL SECURITY al crear una vista materializada. [Más información sobre SQL security](/es/reference/statements/create/view#sql_security).

El valor predeterminado es `DEFINER`.

<div id="default_max_bytes_in_join">
  ## default\_max\_bytes\_in\_join
</div>

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

Tamaño máximo de la tabla del lado derecho cuando se requiere un límite pero `max_bytes_in_join` no está configurado.

<div id="default_normal_view_sql_security">
  ## default\_normal\_view\_sql\_security
</div>

<SettingsInfoBlock type="SQLSecurityType" default_value="INVOKER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "INVOKER"},{"label": "Permite establecer la opción predeterminada de `SQL SECURITY` al crear una vista normal"}]}]} />

Permite establecer la opción predeterminada de `SQL SECURITY` al crear una vista normal. [Más información sobre la seguridad SQL](/es/reference/statements/create/view#sql_security).

El valor predeterminado es `INVOKER`.

<div id="default_table_engine">
  ## default\_table\_engine
</div>

<SettingsInfoBlock type="DefaultTableEngine" default_value="MergeTree" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "MergeTree"},{"label": "Establece el motor de tabla predeterminado en MergeTree para mejorar la usabilidad"}]}]} />

Motor de tabla predeterminado que se utilizará cuando no se especifique `ENGINE` en una sentencia `CREATE`.

Valores posibles:

* una cadena que represente cualquier nombre de motor de tabla válido

Valor predeterminado de Cloud: `SharedMergeTree`.

**Ejemplo**

Consulta:

```sql theme={null}
SET default_table_engine = 'Log';

SELECT name, value, changed FROM system.settings WHERE name = 'default_table_engine';
```

Resultado:

```response theme={null}
┌─name─────────────────┬─value─┬─changed─┐
│ default_table_engine │ Log   │       1 │
└──────────────────────┴───────┴─────────┘
```

En este ejemplo, cualquier tabla nueva que no especifique un `Engine` utilizará el motor de tabla `Log`:

Consulta:

```sql theme={null}
CREATE TABLE my_table (
    x UInt32,
    y UInt32
);

SHOW CREATE TABLE my_table;
```

Resultado:

```response theme={null}
┌─statement────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.my_table
(
    `x` UInt32,
    `y` UInt32
)
ENGINE = Log
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="default_temporary_table_engine">
  ## default\_temporary\_table\_engine
</div>

<SettingsInfoBlock type="DefaultTableEngine" default_value="Memory" />

Igual que [default\_table\_engine](#default_table_engine), pero para las tablas temporales.

En este ejemplo, cualquier tabla temporal nueva que no especifique un `Engine` usará el engine de tabla `Log`:

Consulta:

```sql theme={null}
SET default_temporary_table_engine = 'Log';

CREATE TEMPORARY TABLE my_table (
    x UInt32,
    y UInt32
);

SHOW CREATE TEMPORARY TABLE my_table;
```

Resultado:

```response theme={null}
┌─statement────────────────────────────────────────────────────────────────┐
│ CREATE TEMPORARY TABLE default.my_table
(
    `x` UInt32,
    `y` UInt32
)
ENGINE = Log
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="default_view_definer">
  ## default\_view\_definer
</div>

<SettingsInfoBlock type="String" default_value="CURRENT_USER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "CURRENT_USER"},{"label": "Permite establecer la opción `DEFINER` predeterminada al crear una vista"}]}]} />

Permite establecer la opción `DEFINER` predeterminada al crear una vista. [Más información sobre SQL SECURITY](/es/reference/statements/create/view#sql_security).

El valor predeterminado es `CURRENT_USER`.

<div id="defer_partition_pruning_after_final">
  ## defer\_partition\_pruning\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Ajuste añadido en 26.5 para controlar el comportamiento de poda de particiones de FINAL, introducido silenciosamente en 26.3 (https://github.com/ClickHouse/ClickHouse/pull/98242). El cambio semántico relevante está registrado en el bloque 26.3 para que `compatibility = '26.2'` lo revierta; esta entrada existe para que la comprobación de actualización desde 26.4 acepte el nombre recién introducido."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "Controla la omisión incondicional de la poda de particiones por parte del planner de FINAL cuando la columna de la clave de partición no forma parte de la clave de ordenación. El cambio de comportamiento en sí se introdujo silenciosamente en 26.3 mediante https://github.com/ClickHouse/ClickHouse/pull/98242; esta entrada lo documenta retroactivamente para que `compatibility = '26.2'` restaure el comportamiento anterior a la regresión (0 = podar antes de FINAL, rápido; 1 = aplazar la poda, seguro desde el punto de vista de la corrección)."}]}]} />

Cuando está habilitado (valor predeterminado), la poda de particiones se omite para las consultas `FINAL` en tablas cuyas
columnas de la clave de partición no forman parte de la clave de ordenación. Este es el comportamiento seguro desde el punto de vista de la corrección
introducido en 26.3: `FINAL` puede necesitar deduplicar filas que comparten una clave primaria pero están
en particiones distintas, y la poda de particiones excluiría silenciosamente esas filas de la
entrada usada para la deduplicación.

Cuando está deshabilitado, la poda de particiones se aplica incluso con `FINAL`, lo que restaura el comportamiento
anterior a la versión 26.3. Esto puede ser considerablemente más rápido para consultas con predicados `WHERE` en la
columna de partición, pero solo es correcto cuando filas con la misma clave primaria no pueden existir
en particiones distintas; por ejemplo, en tablas de registro de eventos cuya columna de partición se establece en el momento de la inserción
y nunca cambia.

Este ajuste solo afecta a las tablas particionadas cuyas columnas de la clave de partición no están incluidas
en la clave de ordenación; en las demás tablas, la poda de particiones siempre se aplica.

Posibles valores:

* 0 — Aplicar la poda de particiones antes de `FINAL` (comportamiento anterior a la versión 26.3, más rápido pero inseguro en el caso general).
* 1 — Aplazar la poda de particiones hasta después de `FINAL` (valor predeterminado, seguro desde el punto de vista de la corrección).

<div id="delta_lake_enable_engine_predicate">
  ## delta\_lake\_enable\_engine\_predicate
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva opción de configuración"}]}]} />

Activa la poda interna de datos de delta-kernel.

<div id="delta_lake_enable_expression_visitor_logging">
  ## delta\_lake\_enable\_expression\_visitor\_logging
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita los logs de nivel Test del visitante de expresiones de DeltaLake. Estos logs pueden ser demasiado verbosos incluso para el registro de prueba.

<div id="delta_lake_insert_max_bytes_in_data_file">
  ## delta\_lake\_insert\_max\_bytes\_in\_data\_file
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1073741824" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1073741824"},{"label": "Nueva configuración."}]}]} />

Define el límite en bytes para un único archivo de datos insertado en delta lake.

<div id="delta_lake_insert_max_rows_in_data_file">
  ## delta\_lake\_insert\_max\_rows\_in\_data\_file
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1000000"},{"label": "Nueva configuración."}]}]} />

Define el límite de filas para un único archivo de datos insertado en delta lake.

<div id="delta_lake_log_metadata">
  ## delta\_lake\_log\_metadata
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita el registro de los archivos de metadatos de delta lake en la tabla del sistema.

<div id="delta_lake_reload_schema_for_consistency">
  ## delta\_lake\_reload\_schema\_for\_consistency
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva opción de configuración para controlar si DeltaLake recarga el esquema antes de cada consulta para garantizar la consistencia."}]}]} />

Si está habilitada, el esquema se recarga a partir de los metadatos de DeltaLake antes de cada ejecución de la consulta para garantizar
la consistencia entre el esquema utilizado durante el análisis de la consulta y el esquema utilizado durante la ejecución.

<div id="delta_lake_snapshot_end_version">
  ## delta\_lake\_snapshot\_end\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "-1"},{"label": "Nueva configuración."}]}]} />

Versión final del snapshot de Delta Lake que se va a leer. El valor -1 significa que se lee la versión más reciente (el valor 0 es una versión de snapshot válida).

<div id="delta_lake_snapshot_start_version">
  ## delta\_lake\_snapshot\_start\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "-1"},{"label": "Nueva configuración."}]}]} />

Versión inicial de la instantánea de Delta Lake que se leerá. El valor -1 indica que se leerá la versión más reciente (el valor 0 es una versión de instantánea válida).

<div id="delta_lake_snapshot_version">
  ## delta\_lake\_snapshot\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "-1"},{"label": "Nueva configuración"}]}]} />

Versión de la instantánea de delta lake que se debe leer. El valor -1 indica que se leerá la versión más reciente (el valor 0 es una versión de instantánea válida).

<div id="delta_lake_throw_on_engine_predicate_error">
  ## delta\_lake\_throw\_on\_engine\_predicate\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Hace que se lance una excepción si se produce un error al analizar el predicado de escaneo en delta-kernel.

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

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

Si es true, incluye solo los nombres de las columnas y los tipos en el resultado de la consulta DESCRIBE

<div id="describe_include_subcolumns">
  ## describe\_include\_subcolumns
</div>

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

Permite describir subcolumnas en una consulta [DESCRIBE](/es/reference/statements/describe-table). Por ejemplo, los miembros de un [Tuple](/es/reference/data-types/tuple) o las subcolumnas de un tipo de dato [Map](/es/reference/data-types/map#reading-subcolumns-of-map), [Nullable](/es/reference/data-types/nullable#finding-null) o [Array](/es/reference/data-types/array#array-size).

Valores posibles:

* 0 — Las subcolumnas no se incluyen en las consultas `DESCRIBE`.
* 1 — Las subcolumnas se incluyen en las consultas `DESCRIBE`.

**Ejemplo**

Vea un ejemplo de la sentencia [DESCRIBE](/es/reference/statements/describe-table).

<div id="describe_include_virtual_columns">
  ## describe\_include\_virtual\_columns
</div>

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

Si es true, las columnas virtuales de la tabla se incluirán en el resultado de la consulta DESCRIBE.

<div id="dialect">
  ## dialecto
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

Dialecto que se utilizará para analizar la consulta

<div id="dictionary_use_async_executor">
  ## dictionary\_use\_async\_executor
</div>

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

Ejecuta una canalización para leer la fuente del diccionario en varios hilos. Solo es compatible con diccionarios con una fuente CLICKHOUSE local.

<div id="dictionary_validate_primary_key_type">
  ## dictionary\_validate\_primary\_key\_type
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Valida el tipo de clave primaria de los diccionarios. De forma predeterminada, el tipo de id de los layouts simples se convertirá implícitamente en UInt64."}]}]} />

Valida el tipo de clave primaria de los diccionarios. De forma predeterminada, el tipo de id de los layouts simples se convertirá implícitamente en UInt64.

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué ocurre cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanza una excepción (predeterminado).
* `break`: deja de ejecutar la consulta y devuelve el resultado parcial, como si los
  datos de origen se hubieran agotado.

<div id="distributed_aggregation_memory_efficient">
  ## distributed\_aggregation\_memory\_efficient
</div>

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

Indica si está habilitado el modo de agregación distribuida con ahorro de memoria.

<div id="distributed_background_insert_batch">
  ## distributed\_background\_insert\_batch
</div>

**Aliases**: `distributed_directory_monitor_batch_inserts`

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

Habilita o deshabilita el envío por lotes de los datos insertados.

Cuando el envío por lotes está habilitado, el motor de tabla [Distributed](/es/reference/engines/table-engines/special/distributed) intenta enviar varios archivos de datos insertados en una sola operación en lugar de enviarlos por separado. El envío por lotes mejora el rendimiento del clúster al aprovechar mejor los recursos del servidor y de la red.

Valores posibles:

* 1 — Habilitado.
* 0 — Deshabilitado.

<div id="distributed_background_insert_max_sleep_time_ms">
  ## distributed\_background\_insert\_max\_sleep\_time\_ms
</div>

**Aliases**: `distributed_directory_monitor_max_sleep_time_ms`

<SettingsInfoBlock type="Milisegundos" default_value="30000" />

Intervalo máximo para que el motor de tabla [Distributed](/es/reference/engines/table-engines/special/distributed) envíe datos. Limita el crecimiento exponencial del intervalo establecido en la opción de configuración [distributed\_background\_insert\_sleep\_time\_ms](#distributed_background_insert_sleep_time_ms).

Valores posibles:

* Un número entero positivo de milisegundos.

<div id="distributed_background_insert_sleep_time_ms">
  ## distributed\_background\_insert\_sleep\_time\_ms
</div>

**Aliases**: `distributed_directory_monitor_sleep_time_ms`

<SettingsInfoBlock type="Milisegundos" default_value="100" />

Intervalo base para que el motor de tabla [Distributed](/es/reference/engines/table-engines/special/distributed) envíe datos. El intervalo real aumenta exponencialmente en caso de errores.

Valores posibles:

* Un número entero positivo de milisegundos.

<div id="distributed_background_insert_split_batch_on_failure">
  ## distributed\_background\_insert\_split\_batch\_on\_failure
</div>

**Alias**: `distributed_directory_monitor_split_batch_on_failure`

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

Habilita o deshabilita la división de lotes cuando se producen fallos.

A veces, el envío de un lote concreto al segmento remoto puede fallar debido a alguna canalización compleja posterior (por ejemplo, una `MATERIALIZED VIEW` con `GROUP BY`) por `Memory limit exceeded` u otros errores similares. En este caso, reintentar no servirá de ayuda (y esto bloqueará los envíos distribuidos de la tabla), pero enviar los archivos de ese lote uno por uno puede hacer que el `INSERT` se complete correctamente.

Por lo tanto, establecer esta configuración en `1` deshabilitará el procesamiento por lotes para esos lotes (es decir, deshabilitará temporalmente `distributed_background_insert_batch` para los lotes fallidos).

Valores posibles:

* 1 — Habilitado.
* 0 — Deshabilitado.

<Note>
  Esta configuración también afecta a los lotes dañados (que pueden aparecer debido a una finalización anómala del servidor (máquina) y a la ausencia de `fsync_after_insert`/`fsync_directories` para el motor de tabla [Distributed](/es/reference/engines/table-engines/special/distributed)).
</Note>

<Note>
  No debe confiar en la división automática de lotes, ya que puede perjudicar el rendimiento.
</Note>

<div id="distributed_background_insert_timeout">
  ## distributed\_background\_insert\_timeout
</div>

**Alias**: `insert_distributed_timeout`

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

Tiempo de espera de la consulta de inserción en Distributed. Esta configuración se usa solo cuando `insert_distributed_sync` está habilitado. Un valor de cero significa que no hay tiempo de espera.

<div id="distributed_cache_alignment">
  ## distributed\_cache\_alignment
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Se ha cambiado el nombre de distributed_cache_read_alignment"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Es una configuración para pruebas; no la cambie

<div id="distributed_cache_bypass_connection_pool">
  ## distributed\_cache\_bypass\_connection\_pool
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Una configuración de ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Permite omitir el pool de conexiones de Distributed Cache

<div id="distributed_cache_connect_backoff_max_ms">
  ## distributed\_cache\_connect\_backoff\_max\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "50"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Máximo de milisegundos de backoff para la creación de conexiones de distributed cache.

<div id="distributed_cache_connect_backoff_min_ms">
  ## distributed\_cache\_connect\_backoff\_min\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Milisegundos mínimos de backoff para la creación de conexiones a distributed cache.

<div id="distributed_cache_connect_max_tries">
  ## distributed\_cache\_connect\_max\_tries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "5"},{"label": "Se cambió el valor de la configuración"}]}, {"id": "row-2","items": [{"label": "25.1"},{"label": "20"},{"label": "Solo en Cloud"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "20"},{"label": "Una configuración para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Número de intentos de conexión a distributed cache en caso de error

<div id="distributed_cache_connect_timeout_ms">
  ## distributed\_cache\_connect\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "Nueva opción"},{"label": "New setting"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera de conexión al establecer conexión con el servidor de caché distribuida.

<div id="distributed_cache_credentials_refresh_period_seconds">
  ## distributed\_cache\_credentials\_refresh\_period\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "5"},{"label": "Nueva configuración privada"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Período de actualización de credenciales.

<div id="distributed_cache_data_packet_ack_window">
  ## distributed\_cache\_data\_packet\_ack\_window
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "5"},{"label": "Un ajuste para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Una ventana para enviar ACK de la secuencia de DataPacket en una sola solicitud de lectura de distributed cache

<div id="distributed_cache_discard_connection_if_unread_data">
  ## distributed\_cache\_discard\_connection\_if\_unread\_data
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Descarta la conexión si queda algún dato sin leer.

<div id="distributed_cache_fetch_metrics_only_from_current_az">
  ## distributed\_cache\_fetch\_metrics\_only\_from\_current\_az
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Una configuración para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Obtiene métricas únicamente de la zona de disponibilidad actual en system.distributed\_cache\_metrics, system.distributed\_cache\_events

<div id="distributed_cache_file_cache_name">
  ## distributed\_cache\_file\_cache\_name
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": ""},{"label": "Nueva configuración."}]}]} />

Solo tiene efecto en ClickHouse Cloud. Configuración usada solo para pruebas de CI: nombre de la filesystem cache que se usará en distributed cache.

<div id="distributed_cache_log_mode">
  ## distributed\_cache\_log\_mode
</div>

<SettingsInfoBlock type="DistributedCacheLogMode" default_value="on_error" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "on_error"},{"label": "Una configuración de ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Modo para escribir en system.distributed\_cache\_log

<div id="distributed_cache_max_unacked_inflight_packets">
  ## distributed\_cache\_max\_unacked\_inflight\_packets
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "10"},{"label": "Una configuración de ClickHouse Cloud"}]}]} />

Solo surte efecto en ClickHouse Cloud. Número máximo de paquetes en vuelo sin confirmar en una única solicitud de lectura de distributed cache

<div id="distributed_cache_min_bytes_for_seek">
  ## distributed\_cache\_min\_bytes\_for\_seek
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración privada."}]}]} />

Solo surte efecto en ClickHouse Cloud. Número mínimo de bytes para realizar un seek en distributed cache.

<div id="distributed_cache_pool_behaviour_on_limit">
  ## distributed\_cache\_pool\_behaviour\_on\_limit
</div>

<SettingsInfoBlock type="DistributedCachePoolBehaviourOnLimit" default_value="wait" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "wait"},{"label": "Solo en Cloud"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "allocate_bypassing_pool"},{"label": "Configuración para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Describe el comportamiento de la conexión de caché distribuida cuando se alcanza el límite del pool

<div id="distributed_cache_prefer_bigger_buffer_size">
  ## distributed\_cache\_prefer\_bigger\_buffer\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Solo tiene efecto en ClickHouse Cloud. Es igual que filesystem\_cache\_prefer\_bigger\_buffer\_size, pero para la caché distribuida.

<div id="distributed_cache_read_only_from_current_az">
  ## distributed\_cache\_read\_only\_from\_current\_az
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Permite leer solo de la zona de disponibilidad actual. Si se desactiva, se leerá de todos los servidores de caché de todas las zonas de disponibilidad.

<div id="distributed_cache_read_request_max_tries">
  ## distributed\_cache\_read\_request\_max\_tries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "10"},{"label": "Valor de la configuración cambiado"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "20"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Número de intentos para realizar una solicitud de lectura al distributed cache si falla

<div id="distributed_cache_receive_response_wait_milliseconds">
  ## distributed\_cache\_receive\_response\_wait\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "60000"},{"label": "Una configuración de ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera en milisegundos para recibir los datos de una solicitud desde la caché distribuida

<div id="distributed_cache_receive_timeout_milliseconds">
  ## distributed\_cache\_receive\_timeout\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "10000"},{"label": "Un ajuste para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera, en milisegundos, para recibir cualquier tipo de respuesta de la caché distribuida

Valor predeterminado en Cloud: `20000`.

<div id="distributed_cache_receive_timeout_ms">
  ## distributed\_cache\_receive\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "3000"},{"label": "Nuevo ajuste"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera para recibir datos del servidor de caché distribuida, en milisegundos. Si no se recibe ningún byte en este intervalo, se lanza una excepción.

<div id="distributed_cache_send_timeout_ms">
  ## distributed\_cache\_send\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "3000"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera para enviar datos al servidor de caché distribuida, en milisegundos. Si un cliente necesita enviar datos, pero no puede enviar ningún byte dentro de este intervalo, se genera una excepción.

<div id="distributed_cache_tcp_keep_alive_timeout_ms">
  ## distributed\_cache\_tcp\_keep\_alive\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "2900"},{"label": "Nuevo ajuste"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo, en milisegundos, durante el que la conexión con el servidor de caché distribuida debe permanecer inactiva antes de que TCP empiece a enviar sondas keepalive.

<div id="distributed_cache_throw_on_error">
  ## distributed\_cache\_throw\_on\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Un ajuste para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Vuelve a lanzar la excepción que se produzca durante la comunicación con la caché distribuida o la excepción recibida de la caché distribuida. De lo contrario, en caso de error, se omite la caché distribuida

<div id="distributed_cache_use_clients_cache_for_read">
  ## distributed\_cache\_use\_clients\_cache\_for\_read
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva opción de configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Use la caché de los clientes para las solicitudes de lectura.

<div id="distributed_cache_use_clients_cache_for_write">
  ## distributed\_cache\_use\_clients\_cache\_for\_write
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Usa la caché del cliente para las solicitudes de escritura.

<div id="distributed_cache_wait_connection_from_pool_milliseconds">
  ## distributed\_cache\_wait\_connection\_from\_pool\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "100"},{"label": "Una configuración de ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera en milisegundos para obtener una conexión del pool de conexiones si distributed\_cache\_pool\_behaviour\_on\_limit es wait

<div id="distributed_cache_write_request_max_tries">
  ## distributed\_cache\_write\_request\_max\_tries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Número de intentos para realizar una solicitud de escritura en distributed cache si falla

<div id="distributed_connections_pool_size">
  ## distributed\_connections\_pool\_size
</div>

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

El número máximo de conexiones simultáneas con servidores remotos para el procesamiento distribuido de todas las consultas a una única tabla Distributed. Recomendamos establecer un valor no inferior al número de servidores del clúster.

<div id="distributed_ddl_entry_format_version">
  ## distributed\_ddl\_entry\_format\_version
</div>

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

Versión de compatibilidad para las consultas de DDL distribuido (ON CLUSTER)

Valor predeterminado de Cloud: `6`.

<div id="distributed_ddl_output_mode">
  ## distributed\_ddl\_output\_mode
</div>

<SettingsInfoBlock type="DistributedDDLOutputMode" default_value="throw" />

Establece el formato del conjunto de resultados de la consulta DDL distribuida.

Valores posibles:

* `throw` — Devuelve un conjunto de resultados con el estado de ejecución de la consulta para todos los hosts en los que la consulta ha finalizado. Si la consulta ha fallado en algunos hosts, vuelve a lanzar la primera excepción. Si la consulta aún no ha finalizado en algunos hosts y se ha superado [distributed\_ddl\_task\_timeout](#distributed_ddl_task_timeout), lanza la excepción `TIMEOUT_EXCEEDED`.
* `none` — Es similar a `throw`, pero la consulta DDL distribuida no devuelve ningún conjunto de resultados.
* `null_status_on_timeout` — Devuelve `NULL` como estado de ejecución en algunas filas del conjunto de resultados en lugar de lanzar `TIMEOUT_EXCEEDED` si la consulta no ha finalizado en los hosts correspondientes.
* `never_throw` — No lanza `TIMEOUT_EXCEEDED` ni vuelve a lanzar excepciones si la consulta ha fallado en algunos hosts.
* `none_only_active` - Similar a `none`, pero no espera a las réplicas inactivas de la base de datos `Replicated`. Nota: con este modo es imposible determinar que la consulta no se ejecutó en alguna réplica y que se ejecutará en segundo plano.
* `null_status_on_timeout_only_active` — Similar a `null_status_on_timeout`, pero no espera a las réplicas inactivas de la base de datos `Replicated`
* `throw_only_active` — Similar a `throw`, pero no espera a las réplicas inactivas de la base de datos `Replicated`

Valor predeterminado de Cloud: `none_only_active`.

<div id="distributed_ddl_task_timeout">
  ## distributed\_ddl\_task\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="180" />

Establece el tiempo de espera para las respuestas a consultas DDL de todos los hosts del clúster. Si una solicitud DDL no se ha ejecutado en todos los hosts, la respuesta contendrá un error de tiempo de espera y la solicitud se ejecutará en modo asíncrono. Un valor negativo significa que el tiempo de espera es infinito.

Valores posibles:

* Entero positivo.
* 0 — Modo asíncrono.
* Entero negativo — tiempo de espera infinito.

<div id="distributed_foreground_insert">
  ## distributed\_foreground\_insert
</div>

**Aliases**: `insert_distributed_sync`

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

Habilita o deshabilita la inserción síncrona de datos en una tabla [Distributed](/es/reference/engines/table-engines/special/distributed).

De forma predeterminada, al insertar datos en una tabla `Distributed`, el servidor de ClickHouse envía los datos a los nodos del clúster en segundo plano. Cuando `distributed_foreground_insert=1`, los datos se procesan de forma síncrona y la operación `INSERT` solo se completa correctamente después de que todos los datos se hayan guardado en todos los segmentos (al menos una réplica por cada segmento si `internal_replication` es true).

Valores posibles:

* `0` — Los datos se insertan en segundo plano.
* `1` — Los datos se insertan en modo síncrono.

Valor predeterminado de Cloud: `1`.

**Véase también**

* [Motor de tabla Distributed](/es/reference/engines/table-engines/special/distributed)
* [Administración de tablas distribuidas](/es/reference/statements/system#managing-distributed-tables)

<div id="distributed_group_by_no_merge">
  ## distributed\_group\_by\_no\_merge
</div>

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

No fusiona los estados de agregación de distintos servidores durante el procesamiento distribuido de consultas; puede usarse cuando se tiene la certeza de que hay claves distintas en diferentes segmentos

Valores posibles:

* `0` — Deshabilitado (el procesamiento final de la consulta se realiza en el nodo iniciador).
* `1` - No fusiona los estados de agregación de distintos servidores durante el procesamiento distribuido de consultas (la consulta se procesa por completo en el segmento; el iniciador solo actúa como proxy de los datos); puede usarse cuando se tiene la certeza de que hay claves distintas en diferentes segmentos.
* `2` - Igual que `1`, pero aplica `ORDER BY` y `LIMIT` en el iniciador (esto no es posible cuando la consulta se procesa por completo en el nodo remoto, como en `distributed_group_by_no_merge=1`) y puede usarse para consultas con `ORDER BY` y/o `LIMIT`.

**Ejemplo**

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
│     0 │
└───────┘
```

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
└───────┘
```

<div id="distributed_index_analysis">
  ## distributed\_index\_analysis
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración experimental"}]}]} />

El análisis de índices se distribuirá entre las réplicas.
Resulta beneficioso para el almacenamiento compartido y grandes volúmenes de datos en el clúster.
Utiliza réplicas de cluster\_for\_parallel\_replicas.

**Véase también**

* [distributed\_index\_analysis\_for\_non\_shared\_merge\_tree](#distributed_index_analysis_for_non_shared_merge_tree)
* [distributed\_index\_analysis\_min\_parts\_to\_activate](/es/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate)
* [distributed\_index\_analysis\_min\_indexes\_bytes\_to\_activate](/es/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate)

<div id="distributed_index_analysis_for_non_shared_merge_tree">
  ## distributed\_index\_analysis\_for\_non\_shared\_merge\_tree
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita el análisis distribuido de índices incluso para motores que no son SharedMergeTree (motor exclusivo de Cloud).

<div id="distributed_index_analysis_only_on_coordinator">
  ## distributed\_index\_analysis\_only\_on\_coordinator
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Si está habilitado, el análisis de índices distribuidos se ejecuta solo en el coordinador.
Esto evita la generación de consultas O(N^2) cuando el predicado contiene subconsultas (p. ej., `IN (SELECT ...)`),
porque, de lo contrario, cada réplica follower activaría de forma independiente su propio análisis de índices distribuidos,
pero hace que el análisis de índices distribuidos sea menos eficiente si en las subconsultas se usan tablas grandes.

<div id="distributed_insert_skip_read_only_replicas">
  ## distributed\_insert\_skip\_read\_only\_replicas
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Si es true, INSERT en Distributed omitirá las réplicas de solo lectura"}]}]} />

Permite omitir las réplicas de solo lectura en las consultas INSERT en Distributed.

Valores posibles:

* 0 — INSERT se realizará como de costumbre; si se dirige a una réplica de solo lectura, fallará
* 1 — El nodo iniciador omitirá las réplicas de solo lectura antes de enviar los datos a los segmentos.

<div id="distributed_plan_default_reader_bucket_count">
  ## distributed\_plan\_default\_reader\_bucket\_count
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "8"},{"label": "Nueva configuración experimental."}]}]} />

Número predeterminado de tareas para la lectura paralela en una consulta distribuida. Las tareas se distribuyen entre las réplicas.

<div id="distributed_plan_default_shuffle_join_bucket_count">
  ## distributed\_plan\_default\_shuffle\_join\_bucket\_count
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "8"},{"label": "Nueva configuración experimental."}]}]} />

Número predeterminado de buckets para el shuffle-hash-join distribuido.

<div id="distributed_plan_execute_locally">
  ## distributed\_plan\_execute\_locally
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Nueva configuración experimental."}]}]} />

Ejecuta localmente todas las tareas de un plan de consulta distribuida. Útil para pruebas y depuración.

<div id="distributed_plan_force_exchange_kind">
  ## distributed\_plan\_force\_exchange\_kind
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": ""},{"label": "Nueva configuración experimental."}]}]} />

Fuerza el tipo especificado de operadores Exchange entre las etapas de una consulta distribuida.

Valores posibles:

* '' - no forzar ningún tipo de operadores Exchange; dejar que el optimizador elija,
* 'Persisted' - usar archivos temporales en el almacenamiento de objetos,
* 'Streaming' - transmitir datos de intercambio a través de la red.

<div id="distributed_plan_force_shuffle_aggregation">
  ## distributed\_plan\_force\_shuffle\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Nueva configuración experimental"}]}]} />

Usa la estrategia de agregación Shuffle en lugar de PartialAggregation + Merge en el plan de consulta distribuida.

<div id="distributed_plan_max_rows_to_broadcast">
  ## distributed\_plan\_max\_rows\_to\_broadcast
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "20000"},{"label": "Nueva configuración experimental."}]}]} />

Número máximo de filas para usar un broadcast join en lugar de un shuffle join en el plan de consulta distribuida.

<div id="distributed_plan_optimize_exchanges">
  ## distributed\_plan\_optimize\_exchanges
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración experimental."}]}]} />

Elimina los intercambios innecesarios en el plan de consulta distribuida. Desactívelo para depuración.

<div id="distributed_plan_prefer_replicas_over_workers">
  ## distributed\_plan\_prefer\_replicas\_over\_workers
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para serializar el plan distribuido para las réplicas"}]}]} />

Serializa el plan de consulta distribuida para ejecutarlo en las réplicas.

<div id="distributed_product_mode">
  ## distributed\_product\_mode
</div>

<SettingsInfoBlock type="DistributedProductMode" default_value="deny" />

Cambia el comportamiento de las [subconsultas distribuidas](/es/reference/statements/in).

ClickHouse aplica esta configuración cuando la consulta contiene el producto de tablas distribuidas; es decir, cuando la consulta de una tabla distribuida contiene una subconsulta no GLOBAL para la tabla distribuida.

Restricciones:

* Solo se aplica a las subconsultas `IN` y `JOIN`.
* Solo si la sección `FROM` usa una tabla distribuida que contiene más de un segmento.
* Si la subconsulta hace referencia a una tabla distribuida que contiene más de un segmento.
* No se usa para la función de tabla [remote](/es/reference/functions/table-functions/remote).

Valores posibles:

* `deny` — Valor predeterminado. Prohíbe usar estos tipos de subconsultas (devuelve la excepción "Double-distributed in/JOIN subqueries is denied").
* `local` — Reemplaza la base de datos y la tabla de la subconsulta por las locales del servidor de destino (segmento), dejando `IN`/`JOIN` normal.
* `global` — Reemplaza la consulta `IN`/`JOIN` por `GLOBAL IN`/`GLOBAL JOIN`.
* `allow` — Permite el uso de estos tipos de subconsultas.

<div id="distributed_push_down_limit">
  ## distributed\_push\_down\_limit
</div>

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

Habilita o deshabilita la aplicación de [LIMIT](#limit) por separado en cada segmento.

Esto permite evitar:

* Enviar filas adicionales por la red;
* Procesar filas que quedan fuera del límite en el iniciador.

A partir de la versión 21.9, ya no es posible obtener resultados inexactos, ya que `distributed_push_down_limit` cambia la ejecución de la consulta solo si se cumple al menos una de estas condiciones:

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge) > 0.
* La consulta **no tiene** `GROUP BY`/`DISTINCT`/`LIMIT BY`, pero sí `ORDER BY`/`LIMIT`.
* La consulta **tiene** `GROUP BY`/`DISTINCT`/`LIMIT BY` con `ORDER BY`/`LIMIT` y:
  * [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards) está habilitado.
  * [optimize\_distributed\_group\_by\_sharding\_key](#optimize_distributed_group_by_sharding_key) está habilitado.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Véase también:

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge)
* [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards)
* [optimize\_distributed\_group\_by\_sharding\_key](#optimize_distributed_group_by_sharding_key)

<div id="distributed_replica_error_cap">
  ## distributed\_replica\_error\_cap
</div>

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

* Tipo: entero sin signo
* Valor predeterminado: 1000

El número de errores de cada réplica está limitado a este valor, lo que evita que una sola réplica acumule demasiados errores.

Véase también:

* [load\_balancing](#load_balancing-round_robin)
* [Motor de tabla Distributed](/es/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_half\_life](#distributed_replica_error_half_life)
* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="distributed_replica_error_half_life">
  ## distributed\_replica\_error\_half\_life
</div>

<SettingsInfoBlock type="Segundos" default_value="60" />

* Tipo: segundos
* Valor predeterminado: 60 segundos

Controla la rapidez con la que los errores en las tablas distribuidas se ponen a cero. Si una réplica no está disponible durante un tiempo, acumula 5 errores y distributed\_replica\_error\_half\_life se establece en 1 segundo, la réplica vuelve a considerarse normal 3 segundos después del último error.

Véase también:

* [load\_balancing](#load_balancing-round_robin)
* [Motor de tabla Distributed](/es/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_cap](#distributed_replica_error_cap)
* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="distributed_replica_max_ignored_errors">
  ## distributed\_replica\_max\_ignored\_errors
</div>

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

* Tipo: entero sin signo
* Valor predeterminado: 0

El número de errores que se ignorarán al seleccionar las réplicas (según el algoritmo `load_balancing`).

Vea también:

* [load\_balancing](#load_balancing-round_robin)
* [Motor de tabla Distributed](/es/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_cap](#distributed_replica_error_cap)
* [distributed\_replica\_error\_half\_life](#distributed_replica_error_half_life)

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

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

Mejora las consultas FINAL al evitar los merges entre distintas particiones.

Cuando está habilitado, durante las consultas SELECT FINAL, las partes de distintas particiones no se mezclarán entre sí. En su lugar, la mezcla solo se producirá dentro de cada partición por separado. Esto puede mejorar significativamente el rendimiento de las consultas al trabajar con tablas particionadas.

<div id="dynamic_disk_allow_from_env">
  ## dynamic\_disk\_allow\_from\_env
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para permitir sustituciones `from_env` en la configuración de discos dinámicos (la función `disk()`). Deshabilitada de forma predeterminada por seguridad."}]}]} />

Permite usar sustituciones `from_env` en la configuración de discos dinámicos (es decir, en los argumentos de la función `disk()`).
Está deshabilitada de forma predeterminada para evitar que los usuarios puedan leer variables de entorno arbitrarias al definir el almacenamiento de la tabla.

<div id="dynamic_disk_allow_from_zk">
  ## dynamic\_disk\_allow\_from\_zk
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para permitir sustituciones `from_zk` en la configuración dinámica del disco (la función `disk()`). Deshabilitada de forma predeterminada."}]}]} />

Permite usar sustituciones `from_zk` en la configuración dinámica del disco (es decir, en los argumentos de la función `disk()`).
Deshabilitada de forma predeterminada.

<div id="dynamic_disk_allow_include">
  ## dynamic\_disk\_allow\_include
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva opción para permitir `include` en la configuración dinámica de discos (la función `disk()`). Desactivada de forma predeterminada."}]}]} />

Permite usar `include` en la configuración dinámica de discos (es decir, en los argumentos de la función `disk()`).
Desactivada de forma predeterminada.

<div id="dynamic_throw_on_type_mismatch">
  ## dynamic\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva configuración para controlar el comportamiento ante incompatibilidades de tipo en la implementación predeterminada de Dynamic"}]}]} />

Al aplicar una función a una columna [Dynamic](/es/reference/data-types/dynamic) mediante la implementación predeterminada,
controla qué ocurre con las filas cuyo tipo real es incompatible con la función:

* `true` (predeterminado) — lanzar una excepción.
* `false` — devolver `NULL` para esas filas.

<div id="empty_result_for_aggregation_by_constant_keys_on_empty_set">
  ## empty\_result\_for\_aggregation\_by\_constant\_keys\_on\_empty\_set
</div>

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

Devuelve un resultado vacío al agregar por claves constantes sobre un conjunto vacío.

<div id="empty_result_for_aggregation_by_empty_set">
  ## empty\_result\_for\_aggregation\_by\_empty\_set
</div>

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

Devuelve un resultado vacío al realizar una agregación sin claves sobre un conjunto vacío.

<div id="enable_adaptive_memory_spill_scheduler">
  ## enable\_adaptive\_memory\_spill\_scheduler
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nueva configuración. Habilita el volcado adaptativo de datos en memoria al almacenamiento externo."}]}]} />

Hace que el procesador vuelque datos al almacenamiento externo de forma adaptativa. Actualmente, se admite `grace join`.

<div id="enable_add_distinct_to_in_subqueries">
  ## enable\_add\_distinct\_to\_in\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración para reducir el tamaño de las tablas temporales transferidas para subconsultas `IN` distribuidas."}]}]} />

Habilita `DISTINCT` en las subconsultas `IN`. Esta configuración implica una compensación: activarla puede reducir considerablemente el tamaño de las tablas temporales transferidas para las subconsultas `IN` distribuidas y acelerar significativamente la transferencia de datos entre segmentos, ya que garantiza que solo se envíen valores únicos.
Sin embargo, activar esta configuración añade trabajo de fusión adicional en cada nodo, ya que debe realizarse la deduplicación (`DISTINCT`). Usa esta configuración cuando la transferencia de red sea un cuello de botella y el coste adicional de fusión sea aceptable.

<div id="enable_automatic_decision_for_merging_across_partitions_for_final">
  ## enable\_automatic\_decision\_for\_merging\_across\_partitions\_for\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si está habilitado, ClickHouse activará automáticamente esta optimización cuando la expresión de la clave de partición sea determinista y todas las columnas usadas en ella estén incluidas en la clave primaria.
Esta deducción automática garantiza que las filas con los mismos valores de clave primaria siempre pertenecerán a la misma partición, por lo que es seguro evitar las fusiones entre particiones.

<div id="enable_blob_storage_log">
  ## enable\_blob\_storage\_log
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Registra información sobre las operaciones de blob storage en la tabla system.blob_storage_log"}]}]} />

Registra información sobre las operaciones de blob storage en la tabla system.blob\_storage\_log

<div id="enable_blob_storage_log_for_read_operations">
  ## enable\_blob\_storage\_log\_for\_read\_operations
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para registrar las operaciones de lectura de almacenamiento de blobs en system.blob_storage_log"}]}]} />

Registra información sobre las operaciones de lectura de almacenamiento de blobs en la tabla system.blob\_storage\_log.
Requiere que `enable_blob_storage_log` también esté habilitado.

<div id="enable_early_constant_folding">
  ## enable\_early\_constant\_folding
</div>

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

Habilita la optimización de consultas en la que se analizan los resultados de funciones y subconsultas, y se reescribe la consulta si contienen constantes

<div id="enable_extended_results_for_datetime_functions">
  ## enable\_extended\_results\_for\_datetime\_functions
</div>

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

Habilita o deshabilita la devolución de resultados de tipo `Date32` con rango ampliado (en comparación con el tipo `Date`)
o de tipo `DateTime64` con rango ampliado (en comparación con el tipo `DateTime`).

Valores posibles:

* `0` — Las funciones devuelven `Date` o `DateTime` para todos los tipos de argumentos.
* `1` — Las funciones devuelven `Date32` o `DateTime64` para argumentos `Date32` o `DateTime64`, y `Date` o `DateTime` en los demás casos.

La siguiente tabla muestra el comportamiento de esta configuración para varias funciones de fecha y hora.

| Función                   | `enable_extended_results_for_datetime_functions = 0`                                                        | `enable_extended_results_for_datetime_functions = 1`                                                                                                   |
| ------------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `toStartOfYear`           | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para entradas de tipo `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para entradas de tipo `Date32`/`DateTime64`     |
| `toStartOfISOYear`        | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para entradas `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para entradas `Date32`/`DateTime64`                     |
| `toStartOfQuarter`        | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para entradas `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para entradas `Date32`/`DateTime64`                     |
| `toStartOfMonth`          | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para entradas `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para entradas `Date32`/`DateTime64`                     |
| `toStartOfWeek`           | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para valores de entrada `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para valores de entrada `Date32`/`DateTime64` |
| `toLastDayOfWeek`         | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` cuando la entrada es `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` cuando la entrada es `Date32`/`DateTime64`       |
| `toLastDayOfMonth`        | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para entradas `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para entradas `Date32`/`DateTime64`                     |
| `toMonday`                | Devuelve `Date` o `DateTime`                                                                                | Devuelve `Date`/`DateTime` para valores de entrada `Date`/`DateTime`<br />Devuelve `Date32`/`DateTime64` para valores de entrada `Date32`/`DateTime64` |
| `toStartOfDay`            | Devuelve `DateTime`<br />*Nota: resultados incorrectos para valores fuera del intervalo 1970-2149*          | Devuelve `DateTime` para una entrada `Date`/`DateTime`<br />Devuelve `DateTime64` para una entrada `Date32`/`DateTime64`                               |
| `toStartOfHour`           | Devuelve `DateTime`<br />*Nota: resultados incorrectos para valores fuera del rango 1970-2149*              | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |
| `toStartOfFifteenMinutes` | Devuelve `DateTime`<br />*Nota: resultados incorrectos para valores fuera del rango 1970-2149*              | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |
| `toStartOfTenMinutes`     | Devuelve `DateTime`<br />*Nota: resultados incorrectos para valores fuera del rango 1970-2149*              | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |
| `toStartOfFiveMinutes`    | Devuelve `DateTime`<br />*Nota: devuelve resultados incorrectos para valores fuera del intervalo 1970-2149* | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |
| `toStartOfMinute`         | Devuelve `DateTime`<br />*Nota: resultados incorrectos para valores fuera del intervalo 1970-2149*          | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |
| `timeSlot`                | Devuelve `DateTime`<br />*Nota: produce resultados incorrectos para valores fuera del rango 1970-2149*      | Devuelve `DateTime` para entradas `Date`/`DateTime`<br />Devuelve `DateTime64` para entradas `Date32`/`DateTime64`                                     |

<div id="enable_filesystem_cache">
  ## enable\_filesystem\_cache
</div>

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

Usa la caché para el filesystem remoto. Esta configuración no activa ni desactiva la caché de los discos (debe hacerse mediante la configuración del disco), pero permite omitir la caché para algunas consultas si así se pretende

<div id="enable_filesystem_cache_log">
  ## enable\_filesystem\_cache\_log
</div>

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

Permite registrar el log de la caché del sistema de archivos para cada consulta

<div id="enable_filesystem_cache_on_write_operations">
  ## enable\_filesystem\_cache\_on\_write\_operations
</div>

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

Habilita o deshabilita la caché `write-through`. Si se establece en `false`, la caché `write-through` se desactiva para las operaciones de escritura. Si se establece en `true`, la caché `write-through` se activa siempre que `cache_on_write_operations` esté habilitado en la sección de configuración del disco de caché de la configuración del servidor.
Consulta ["Using local cache"](/es/concepts/features/configuration/server-config/storing-data#using-local-cache) para obtener más información.

Valor predeterminado de Cloud: `1`.

<div id="enable_filesystem_read_prefetches_log">
  ## enable\_filesystem\_read\_prefetches\_log
</div>

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

Registra en system.filesystem prefetch\_log durante la consulta. Debe usarse solo para pruebas o depuración; no se recomienda habilitarlo de forma predeterminada

<div id="enable_full_text_index">
  ## enable\_full\_text\_index
</div>

**Aliases**: `allow_experimental_full_text_index`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "El índice de texto ahora está en GA"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "El índice de texto pasó a Beta."}]}]} />

Si se establece en `true`, permite usar el índice de texto.

<div id="enable_global_with_statement">
  ## enable\_global\_with\_statement
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.2"},{"label": "1"},{"label": "Propagar las sentencias WITH a las consultas UNION y a todas las subconsultas de manera predeterminada"}]}]} />

Propagar las sentencias WITH a las consultas UNION y a todas las subconsultas

<div id="enable_hdfs_pread">
  ## enable\_hdfs\_pread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Habilita o deshabilita `pread` para archivos HDFS. De forma predeterminada, se usa `hdfsPread`. Si se deshabilita, se usarán `hdfsRead` y `hdfsSeek` para leer archivos HDFS.

<div id="enable_http_compression">
  ## enable\_http\_compression
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "En general, debería resultar beneficioso"}]}]} />

Habilita o deshabilita la compresión de datos en la respuesta a una petición HTTP.

Para obtener más información, consulta la [descripción de la interfaz HTTP](/es/concepts/features/interfaces/http).

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="enable_job_stack_trace">
  ## enable\_job\_stack\_trace
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "El ajuste se deshabilitó de forma predeterminada para evitar la sobrecarga de rendimiento."}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "0"},{"label": "Habilita la recopilación de trazas de pila de la programación del trabajo. Está deshabilitado de forma predeterminada para evitar la sobrecarga de rendimiento."}]}]} />

Muestra la traza de pila del creador de un trabajo cuando este genera una excepción. Está deshabilitado de forma predeterminada para evitar la sobrecarga de rendimiento.

<div id="enable_join_fixed_hash_table_conversion">
  ## enable\_join\_fixed\_hash\_table\_conversion
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva configuración para habilitar la conversión de la tabla hash a un array plano para joins cuando la clave es un solo entero con un rango de valores pequeño."}]}]} />

Habilita la conversión de la tabla hash a un array plano para joins cuando la clave es un solo entero con un rango de valores pequeño.

<div id="enable_join_runtime_filters">
  ## enable\_join\_runtime\_filters
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Se habilitó esta optimización"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Filtra el lado izquierdo usando el conjunto de claves de JOIN recopiladas del lado derecho en tiempo de ejecución.

<div id="enable_join_transitive_predicates">
  ## enable\_join\_transitive\_predicates
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para inferir predicados transitivos de equijoin para optimizar el orden de join."}]}]} />

Infiere predicados transitivos de equijoin a partir de las condiciones de join existentes.
Por ejemplo, dados `A.x = B.x` y `B.x = C.x`, se añade un predicado sintético `A.x = C.x`
para que el optimizador del orden de join pueda considerar planes directos de (A JOIN C).

<div id="enable_lazy_columns_replication">
  ## enable\_lazy\_columns\_replication
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Activa la replicación diferida de columnas en JOIN y ARRAY JOIN de forma predeterminada"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Añade una configuración para habilitar la replicación diferida de columnas en JOIN y ARRAY JOIN"}]}]} />

Habilita la replicación diferida de columnas en JOIN y ARRAY JOIN, lo que permite evitar copias innecesarias de las mismas filas varias veces en memoria.

<div id="enable_lightweight_delete">
  ## enable\_lightweight\_delete
</div>

**Alias**: `allow_experimental_lightweight_delete`

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

Habilita las mutaciones DELETE de eliminación ligera en tablas MergeTree.

<div id="enable_lightweight_update">
  ## enable\_lightweight\_update
</div>

**Alias**: `allow_experimental_lightweight_update`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Las actualizaciones ligeras pasaron a Beta. Se añadió un alias para la configuración 'allow_experimental_lightweight_update'."}]}]} />

Permite utilizar actualizaciones ligeras.

<div id="enable_materialized_cte">
  ## enable\_materialized\_cte
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita las expresiones de tabla comunes materializadas; tiene prioridad sobre enable\_global\_with\_statement

<div id="enable_memory_bound_merging_of_aggregation_results">
  ## enable\_memory\_bound\_merging\_of\_aggregation\_results
</div>

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

Activa la estrategia de fusión limitada por memoria para la agregación.

<div id="enable_multiple_prewhere_read_steps">
  ## enable\_multiple\_prewhere\_read\_steps
</div>

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

Traslada más condiciones de WHERE a PREWHERE y realiza lecturas desde disco y filtrado en varios pasos si hay varias condiciones combinadas con AND

<div id="enable_named_columns_in_function_tuple">
  ## enable\_named\_columns\_in\_function\_tuple
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Generar tuplas con nombre en la función tuple() cuando todos los nombres sean únicos y puedan tratarse como identificadores sin comillas."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "Deshabilitado hasta que se mejore la usabilidad"}]}]} />

Genera tuplas con nombre en la función tuple() cuando todos los nombres sean únicos y puedan tratarse como identificadores sin comillas.

<div id="enable_optimize_predicate_expression">
  ## enable\_optimize\_predicate\_expression
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "18.12.17"},{"label": "1"},{"label": "Optimiza los predicados en subconsultas de forma predeterminada"}]}]} />

Activa el pushdown de predicados en las consultas `SELECT`.

El pushdown de predicados puede reducir significativamente el tráfico de red en las consultas distribuidas.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Uso

Considere las siguientes consultas:

1. `SELECT count() FROM test_table WHERE date = '2018-10-10'`
2. `SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'`

Si `enable_optimize_predicate_expression = 1`, el tiempo de ejecución de estas consultas es el mismo porque ClickHouse aplica `WHERE` a la subconsulta durante su procesamiento.

Si `enable_optimize_predicate_expression = 0`, el tiempo de ejecución de la segunda consulta es mucho mayor porque la cláusula `WHERE` se aplica a todos los datos una vez finalizada la subconsulta.

<div id="enable_optimize_predicate_expression_to_final_subquery">
  ## enable\_optimize\_predicate\_expression\_to\_final\_subquery
</div>

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

Permite trasladar el predicado a la subconsulta FINAL.

<div id="enable_order_by_all">
  ## enable\_order\_by\_all
</div>

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

Habilita o deshabilita la ordenación mediante la sintaxis `ORDER BY ALL`; consulte [ORDER BY](/es/reference/statements/select/order-by).

Valores posibles:

* 0 — Deshabilita ORDER BY ALL.
* 1 — Habilita ORDER BY ALL.

**Ejemplo**

Consulta:

```sql theme={null}
CREATE TABLE TAB(C1 Int, C2 Int, ALL Int) ENGINE=Memory();

INSERT INTO TAB VALUES (10, 20, 30), (20, 20, 10), (30, 10, 20);

SELECT * FROM TAB ORDER BY ALL; -- devuelve un error porque ALL es ambiguo

SELECT * FROM TAB ORDER BY ALL SETTINGS enable_order_by_all = 0;
```

Resultado:

```text theme={null}
┌─C1─┬─C2─┬─ALL─┐
│ 20 │ 20 │  10 │
│ 30 │ 10 │  20 │
│ 10 │ 20 │  30 │
└────┴────┴─────┘
```

<div id="enable_parallel_blocks_marshalling">
  ## enable\_parallel\_blocks\_marshalling
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "true"},{"label": "Nueva configuración"}]}]} />

Afecta solo a las consultas distribuidas. Si está habilitado, los bloques se (des)serializarán y (des)comprimirán en los hilos del pipeline (es decir, con un paralelismo mayor que el predeterminado) antes/después de enviarlos al iniciador.

<div id="enable_parsing_to_custom_serialization">
  ## enable\_parsing\_to\_custom\_serialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si es true, los datos pueden interpretarse directamente en columnas con serialización personalizada (p. ej., Sparse), según las indicaciones de serialización obtenidas de la tabla.

<div id="enable_positional_arguments">
  ## enable\_positional\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "1"},{"label": "Activa la funcionalidad de argumentos posicionales de forma predeterminada"}]}]} />

Habilita o deshabilita el uso de argumentos posicionales en las sentencias [GROUP BY](/es/reference/statements/select/group-by), [LIMIT BY](/es/reference/statements/select/limit-by) y [ORDER BY](/es/reference/statements/select/order-by).

Valores posibles:

* 0 — No se admiten argumentos posicionales.
* 1 — Se admiten argumentos posicionales: se pueden usar números de columna en lugar de nombres de columna.

**Ejemplo**

Consulta:

```sql theme={null}
CREATE TABLE positional_arguments(one Int, two Int, three Int) ENGINE=Memory();

INSERT INTO positional_arguments VALUES (10, 20, 30), (20, 20, 10), (30, 10, 20);

SELECT * FROM positional_arguments ORDER BY 2,3;
```

Resultado:

```text theme={null}
┌─one─┬─two─┬─three─┐
│  30 │  10 │   20  │
│  20 │  20 │   10  │
│  10 │  20 │   30  │
└─────┴─────┴───────┘
```

<div id="enable_positional_arguments_for_projections">
  ## enable\_positional\_arguments\_for\_projections
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración para controlar los argumentos posicionales en las proyecciones."}]}, {"id": "row-2","items": [{"label": "25.11"},{"label": "0"},{"label": "Nueva configuración para controlar los argumentos posicionales en las proyecciones."}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración para controlar los argumentos posicionales en las proyecciones."}]}]} />

Habilita o deshabilita la compatibilidad con argumentos posicionales en las definiciones de PROJECTION. Consulte también la configuración [enable\_positional\_arguments](#enable_positional_arguments).

<Note>
  Esta es una configuración de nivel experto y no debe cambiarla si apenas está empezando con ClickHouse.
</Note>

Valores posibles:

* 0 — Los argumentos posicionales no se admiten.
* 1 — Los argumentos posicionales se admiten: se pueden usar números de columna en lugar de nombres de columna.

<div id="enable_producing_buckets_out_of_order_in_aggregation">
  ## enable\_producing\_buckets\_out\_of\_order\_in\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite que la agregación con uso eficiente de memoria (consulta `distributed_aggregation_memory_efficient`) produzca buckets fuera de orden.
Puede mejorar el rendimiento cuando los tamaños de los buckets de agregación son desiguales, ya que permite que una réplica envíe buckets con identificadores más altos al iniciador mientras sigue procesando algunos buckets pesados con identificadores más bajos.
La desventaja es un uso de memoria potencialmente mayor.

<div id="enable_reads_from_query_cache">
  ## enable\_reads\_from\_query\_cache
</div>

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

Si está activado, los resultados de las consultas `SELECT` se recuperan de la [caché de consultas](/es/concepts/features/performance/caches/query-cache).

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="enable_s3_requests_logging">
  ## enable\_s3\_requests\_logging
</div>

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

Habilita un registro muy detallado de las solicitudes a S3. Solo tiene sentido para depuración.

<div id="enable_scalar_subquery_optimization">
  ## enable\_scalar\_subquery\_optimization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.18"},{"label": "1"},{"label": "Evita que las subconsultas escalares (de)serialicen valores escalares grandes y, posiblemente, que la misma subconsulta se ejecute más de una vez"}]}]} />

Si se establece en true, evita que las subconsultas escalares (de)serialicen valores escalares grandes y, posiblemente, que la misma subconsulta se ejecute más de una vez.

<div id="enable_scopes_for_with_statement">
  ## enable\_scopes\_for\_with\_statement
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "Nueva configuración para mantener la compatibilidad con el analizador antiguo."}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "1"},{"label": "Nueva configuración para mantener la compatibilidad con el analizador antiguo."}]}, {"id": "row-3","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración para mantener la compatibilidad con el analizador antiguo."}]}, {"id": "row-4","items": [{"label": "25.4"},{"label": "1"},{"label": "Nueva configuración para mantener la compatibilidad con el analizador antiguo."}]}]} />

Si está deshabilitada, las declaraciones en las cláusulas WITH de nivel superior tendrán el mismo alcance que si se hubieran declarado en el alcance actual.

Tenga en cuenta que esta es una configuración de compatibilidad del analizador para permitir la ejecución de algunas consultas no válidas que el analizador antiguo podía ejecutar.

<div id="enable_shared_storage_snapshot_in_query">
  ## enable\_shared\_storage\_snapshot\_in\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración para compartir la instantánea de almacenamiento en la consulta"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "Habilita de forma predeterminada el uso compartido de la instantánea de almacenamiento en la consulta"}]}]} />

Si está habilitado, todas las subconsultas dentro de una misma consulta compartirán la misma StorageSnapshot para cada tabla.
Esto garantiza una vista coherente de los datos en toda la consulta, incluso si se accede varias veces a la misma tabla.

Esto es necesario para consultas en las que la coherencia interna de las partes de datos es importante. Ejemplo:

```sql theme={null}
SELECT
    count()
FROM events
WHERE (_part, _part_offset) IN (
    SELECT _part, _part_offset
    FROM events
    WHERE user_id = 42
)
```

Sin esta configuración, las consultas externa e interna pueden operar sobre instantáneas de datos distintas, lo que puede producir resultados incorrectos.

<Note>
  Al habilitar esta configuración, se desactiva la optimización que elimina de las instantáneas las partes de datos innecesarias una vez completada la fase de planificación.
  Como resultado, las consultas de larga duración pueden retener partes obsoletas durante toda su ejecución, lo que retrasa la limpieza de partes y aumenta la presión sobre el almacenamiento.

  Actualmente, esta configuración solo se aplica a tablas de la familia MergeTree.
</Note>

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="enable_sharing_sets_for_mutations">
  ## enable\_sharing\_sets\_for\_mutations
</div>

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

Permite compartir objetos Set creados para subconsultas `IN` entre diferentes tareas de la misma mutación. Esto reduce el uso de memoria y el consumo de CPU

<div id="enable_software_prefetch_in_aggregation">
  ## enable\_software\_prefetch\_in\_aggregation
</div>

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

Habilita el uso de la precarga por software en la agregación

<div id="enable_software_prefetch_in_join">
  ## enable\_software\_prefetch\_in\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Habilita el uso de prefetch por software en la fase de sondeo de hash join."}]}]} />

Habilita el uso de prefetch por software en la fase de sondeo de hash join para ocultar la latencia de acceso a memoria en tablas hash grandes.

<div id="enable_time_time64_type">
  ## enable\_time\_time64\_type
</div>

**Aliases**: `allow_experimental_time_time64_type`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Nueva configuración. Permite usar los nuevos tipos de datos experimentales Time y Time64."}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "Habilita los tipos Time y Time64 de forma predeterminada"}]}]} />

Permite crear los tipos de datos [Time](/es/reference/data-types/time) y [Time64](/es/reference/data-types/time64).

<div id="enable_unaligned_array_join">
  ## enable\_unaligned\_array\_join
</div>

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

Permite ARRAY JOIN con varios arrays de distinto tamaño. Cuando esta configuración está habilitada, los arrays se redimensionan al de mayor longitud.

<div id="enable_url_encoding">
  ## enable\_url\_encoding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se cambió el valor predeterminado de la configuración existente"}]}]} />

Permite habilitar o deshabilitar la decodificación/codificación de la ruta de la URI en tablas con motor [URL](/es/reference/engines/table-engines/special/url).

Está deshabilitado de forma predeterminada.

<div id="enable_vertical_final">
  ## enable\_vertical\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Volver a habilitar FINAL vertical de forma predeterminada tras corregir un error"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "Usar FINAL vertical de forma predeterminada"}]}]} />

Si está habilitado, elimina las filas duplicadas durante FINAL marcando las filas como eliminadas y filtrándolas posteriormente en lugar de fusionarlas

<div id="enable_writes_to_query_cache">
  ## enable\_writes\_to\_query\_cache
</div>

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

Si está activado, los resultados de las consultas `SELECT` se almacenan en la [caché de consultas](/es/concepts/features/performance/caches/query-cache).

Valores posibles:

* 0 - Desactivado
* 1 - Activado

<div id="enforce_strict_identifier_format">
  ## enforce\_strict\_identifier\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Si está habilitada, solo se permiten identificadores que contengan caracteres alfanuméricos y guiones bajos.

<div id="engine_file_allow_create_multiple_files">
  ## engine\_file\_allow\_create\_multiple\_files
</div>

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

Habilita o deshabilita la creación de un archivo nuevo en cada inserción en tablas con el engine File si el format tiene el sufijo (`JSON`, `ORC`, `Parquet`, etc.). Si está habilitado, en cada inserción se creará un archivo nuevo con un nombre que siga este patrón:

`data.Parquet` -> `data.1.Parquet` -> `data.2.Parquet`, etc.

Valores posibles:

* 0 — la consulta `INSERT` agrega datos nuevos al final del archivo.
* 1 — la consulta `INSERT` crea un archivo nuevo.

<div id="engine_file_empty_if_not_exists">
  ## engine\_file\_empty\_if\_not\_exists
</div>

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

Permite seleccionar datos de una tabla del motor File aunque no exista el archivo.

Valores posibles:

* 0 — `SELECT` lanza una excepción.
* 1 — `SELECT` devuelve un resultado vacío.

<div id="engine_file_skip_empty_files">
  ## engine\_file\_skip\_empty\_files
</div>

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

Habilita o deshabilita la omisión de archivos vacíos en las tablas del motor [File](/es/reference/engines/table-engines/special/file).

Valores posibles:

* 0 — `SELECT` genera una excepción si el archivo vacío no es compatible con el formato solicitado.
* 1 — `SELECT` devuelve un resultado vacío para un archivo vacío.

<div id="engine_file_truncate_on_insert">
  ## engine\_file\_truncate\_on\_insert
</div>

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

Habilita o deshabilita el truncado antes de insertar en las tablas del motor [File](/es/reference/engines/table-engines/special/file).

Posibles valores:

* 0 — la consulta `INSERT` añade datos nuevos al final del archivo.
* 1 — la consulta `INSERT` sustituye el contenido existente del archivo por los nuevos datos.

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

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

Habilita o deshabilita la omisión de archivos vacíos en las tablas del motor [URL](/es/reference/engines/table-engines/special/url).

Valores posibles:

* 0 — `SELECT` genera una excepción si el archivo vacío no es compatible con el format solicitado.
* 1 — `SELECT` devuelve un resultado vacío si el archivo está vacío.

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

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

Cuando está habilitada, ClickHouse proporcionará el valor exacto de la estadística rows\_before\_limit\_at\_least, pero a costa de tener que leer por completo los datos anteriores al límite

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Establece el modo predeterminado en la consulta EXCEPT. Posibles valores: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo generará una excepción.

<div id="exclude_materialize_skip_indexes_on_insert">
  ## exclude\_materialize\_skip\_indexes\_on\_insert
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": ""},{"label": "Nueva configuración."}]}]} />

Excluye los índices de omisión especificados para que no se creen ni se almacenen durante los INSERTs. Los índices de omisión excluidos se seguirán creando y almacenando [durante las fusiones](/es/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) o mediante una
consulta [MATERIALIZE INDEX](/es/reference/statements/alter/skipping-index#materialize-index) explícita.

No tiene efecto si [materialize\_skip\_indexes\_on\_insert](#materialize_skip_indexes_on_insert) es false.

Ejemplo:

```sql theme={null}
CREATE TABLE tab
(
    a UInt64,
    b UInt64,
    INDEX idx_a a TYPE minmax,
    INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();

SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a no se actualizará al insertar
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- ningún índice se actualizaría al insertar

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- solo se actualiza idx_b

-- al ser una configuración de sesión, puede establecerse a nivel de consulta individual
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';

ALTER TABLE tab MATERIALIZE INDEX idx_a; -- esta consulta puede usarse para materializar el índice de forma explícita

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- restablecer la configuración al valor predeterminado
```

<div id="execute_exists_as_scalar_subquery">
  ## execute\_exists\_as\_scalar\_subquery
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Ejecuta las subconsultas `EXISTS` no correlacionadas como subconsultas escalares. Igual que con las subconsultas escalares, se utiliza la caché y el plegado de constantes se aplica al resultado.

Valor predeterminado en Cloud: `0`.

<div id="external_storage_connect_timeout_sec">
  ## external\_storage\_connect\_timeout\_sec
</div>

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

Tiempo de espera de conexión en segundos. Actualmente, solo es compatible con MySQL

<div id="external_storage_max_read_bytes">
  ## external\_storage\_max\_read\_bytes
</div>

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

Limita el número máximo de bytes cuando una tabla con motor externo debe vaciar los datos del historial. Actualmente, solo es compatible con el motor de tabla MySQL, el motor de base de datos y el diccionario. Si es igual a 0, esta configuración está deshabilitada

<div id="external_storage_max_read_rows">
  ## external\_storage\_max\_read\_rows
</div>

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

Limita el número máximo de filas cuando una tabla con motor externo deba volcar los datos del historial. Actualmente, solo es compatible con el motor de tabla MySQL, el motor de base de datos y el diccionario. Si es igual a 0, esta configuración está deshabilitada

<div id="external_storage_rw_timeout_sec">
  ## external\_storage\_rw\_timeout\_sec
</div>

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

Tiempo de espera de lectura/escritura en segundos. Actualmente, solo se admite para MySQL

<div id="external_table_functions_use_nulls">
  ## external\_table\_functions\_use\_nulls
</div>

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

Define cómo las funciones de tabla [mysql](/es/reference/functions/table-functions/mysql), [postgresql](/es/reference/functions/table-functions/postgresql) y [odbc](/es/reference/functions/table-functions/odbc) utilizan columnas Nullable.

Valores posibles:

* 0 — La función de tabla utiliza explícitamente columnas Nullable.
* 1 — La función de tabla utiliza implícitamente columnas Nullable.

**Uso**

Si esta configuración se establece en `0`, la función de tabla no genera columnas Nullable e inserta valores predeterminados en lugar de NULL. Esto también se aplica a los valores NULL dentro de los arrays.

<div id="external_table_strict_query">
  ## external\_table\_strict\_query
</div>

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

Si se establece en true, se prohíbe convertir la expresión en un filtro local en las consultas a tablas externas.

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

**Alias**: `extract_kvp_max_pairs_per_row`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Número máximo de pares que puede generar la función `extractKeyValuePairs`. Se utiliza como medida de protección para evitar un consumo excesivo de memoria."}]}]} />

Número máximo de pares que puede generar la función `extractKeyValuePairs`. Se utiliza como medida de protección para evitar un consumo excesivo de memoria.

<div id="extremes">
  ## extremes
</div>

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

Indica si se deben contar los valores extremos (los mínimos y máximos en las columnas del resultado de una consulta). Acepta 0 o 1. De forma predeterminada, 0 (deshabilitado).
Para obtener más información, consulte la sección "Valores extremos".

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

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

Obliga a que una consulta use una réplica desactualizada si no hay datos actualizados disponibles. Consulte [Replicación](/es/reference/engines/table-engines/mergetree-family/replication).

ClickHouse selecciona la más adecuada entre las réplicas desactualizadas de la tabla.

Se utiliza al ejecutar `SELECT` en una tabla distribuida que apunta a tablas replicadas.

De forma predeterminada, 1 (habilitado).

<div id="filesystem_cache_allow_background_download">
  ## filesystem\_cache\_allow\_background\_download
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Nueva configuración para controlar las descargas en segundo plano en la caché del sistema de archivos para cada consulta."}]}]} />

Permite que la caché del sistema de archivos ponga en cola descargas en segundo plano para los datos leídos del almacenamiento remoto. Desactívelo para mantener las descargas en primer plano para la consulta o sesión actual.

<div id="filesystem_cache_boundary_alignment">
  ## filesystem\_cache\_boundary\_alignment
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Alineación de los límites de la caché del sistema de archivos. Esta configuración se aplica solo a lecturas que no se realizan desde disco (p. ej., para la caché de motores de tabla remotos / funciones de tabla, pero no para la configuración de almacenamiento de las tablas MergeTree). El valor 0 significa que no hay alineación.

<div id="filesystem_cache_enable_background_download_during_fetch">
  ## filesystem\_cache\_enable\_background\_download\_during\_fetch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera para bloquear la caché al reservar espacio en la caché del sistema de archivos

<div id="filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage">
  ## filesystem\_cache\_enable\_background\_download\_for\_metadata\_files\_in\_packed\_storage
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Tiempo de espera para adquirir un bloqueo de caché y reservar espacio en la caché del sistema de archivos

<div id="filesystem_cache_max_download_size">
  ## filesystem\_cache\_max\_download\_size
</div>

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

Tamaño máximo de la caché remota del sistema de archivos que puede descargarse con una sola consulta

<div id="filesystem_cache_name">
  ## filesystem\_cache\_name
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": ""},{"label": "Nombre de la caché del sistema de archivos que se utilizará para motores de tabla sin estado o lagos de datos"}]}]} />

Nombre de la caché del sistema de archivos que se utilizará para motores de tabla sin estado o lagos de datos

<div id="filesystem_cache_prefer_bigger_buffer_size">
  ## filesystem\_cache\_prefer\_bigger\_buffer\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Prioriza un tamaño de búfer mayor si la caché del sistema de archivos está habilitada para evitar escribir segmentos de archivo pequeños, que perjudican el rendimiento de la caché. Por otro lado, habilitar esta configuración podría aumentar el uso de memoria.

<div id="filesystem_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## filesystem\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "Tiempo de espera para bloquear la caché al reservar espacio en la caché del sistema de archivos"}]}]} />

Tiempo de espera para bloquear la caché al reservar espacio en la caché del sistema de archivos

<div id="filesystem_cache_segments_batch_size">
  ## filesystem\_cache\_segments\_batch\_size
</div>

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

Límite del tamaño de un único batch de segmentos de archivo que un búfer de lectura puede solicitar a la caché. Un valor demasiado bajo provocará demasiadas solicitudes a la caché; uno demasiado alto puede ralentizar la expulsión de la caché

<div id="filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit">
  ## filesystem\_cache\_skip\_download\_if\_exceeds\_per\_query\_cache\_write\_limit
</div>

**Alias**: `skip_download_if_exceeds_query_cache`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Cambio de nombre del ajuste skip_download_if_exceeds_query_cache_limit"}]}]} />

Omitir la descarga desde el sistema de archivos remoto si supera el tamaño de la caché de consultas

<div id="filesystem_prefetch_max_memory_usage">
  ## filesystem\_prefetch\_max\_memory\_usage
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1073741824" />

Uso máximo de memoria para las operaciones de precarga.

Valor predeterminado en Cloud: 10% de la memoria total.

<div id="filesystem_prefetch_step_bytes">
  ## filesystem\_prefetch\_step\_bytes
</div>

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

Paso de prefetch en bytes. Cero significa `auto`: el paso de prefetch óptimo se inferirá automáticamente de forma aproximada, aunque puede que no sea el mejor en todos los casos. El valor real puede ser diferente debido a la configuración filesystem\_prefetch\_min\_bytes\_for\_single\_read\_task

<div id="filesystem_prefetch_step_marks">
  ## filesystem\_prefetch\_step\_marks
</div>

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

Paso de precarga en marcas. Cero significa `auto`: se deducirá automáticamente un paso de precarga aproximadamente óptimo, aunque puede que no sea el mejor en todos los casos. El valor real puede ser diferente debido a la configuración filesystem\_prefetch\_min\_bytes\_for\_single\_read\_task

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

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

Número máximo de precargas. Cero significa sin límite. Se recomienda la configuración `filesystem_prefetches_max_memory_usage` si desea limitar el número de precargas

<div id="final">
  ## final
</div>

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

Aplica automáticamente el modificador [FINAL](/es/reference/statements/select/from#final-modifier) a todas las tablas de una consulta en las que [FINAL](/es/reference/statements/select/from#final-modifier) sea aplicable, incluidas las tablas combinadas, las tablas de las subconsultas y
las tablas distribuidas.

Posibles valores:

* 0 - deshabilitado
* 1 - habilitado

Ejemplo:

```sql theme={null}
CREATE TABLE test
(
    key Int64,
    some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;

INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');

SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
┌─key─┬─some──┐
│   1 │ first │
└─────┴───────┘

SELECT * FROM test SETTINGS final = 1;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘

SET final = 1;
SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
```

<div id="finalize_projection_parts_synchronously">
  ## finalize\_projection\_parts\_synchronously
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para finalizar las partes de proyección de forma síncrona durante INSERT y reducir el uso máximo de memoria."}]}]} />

Cuando está habilitada, las partes de proyección se finalizan de forma síncrona durante INSERT, lo que reduce el uso máximo de memoria a costa de una menor paralelización de las cargas a S3. De forma predeterminada, el flujo de salida de cada proyección se mantiene activo hasta que se finaliza la parte completa (incluidas todas las proyecciones), lo que permite solapar las cargas a S3, pero aumenta el uso máximo de memoria en proporción al número de proyecciones. Esta configuración solo afecta a la ruta de INSERT; merge y mutation ya finalizan las proyecciones de forma síncrona.

<div id="flatten_nested">
  ## flatten\_nested
</div>

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

Establece el formato de datos de las columnas de tipo [nested](/es/reference/data-types/nested-data-structures).

Valores posibles:

* 1 — La columna nested se aplana en arrays separados.
* 0 — La columna nested sigue siendo un único array de tuplas.

**Uso**

Si el ajuste se establece en `0`, se puede usar cualquier nivel de anidamiento.

**Ejemplos**

Consulta:

```sql theme={null}
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Resultado:

```text theme={null}
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n.a` Array(UInt32),
    `n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Consulta:

```sql theme={null}
SET flatten_nested = 0;

CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

Resultado:

```text theme={null}
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="force_aggregate_partitions_independently">
  ## force\_aggregate\_partitions\_independently
</div>

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

Fuerza el uso de esta optimización cuando es aplicable, aunque las heurísticas hayan decidido no utilizarla

<div id="force_aggregation_in_order">
  ## force\_aggregation\_in\_order
</div>

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

Esta configuración la utiliza el propio servidor para admitir consultas distribuidas. No la cambie manualmente, porque interrumpirá el funcionamiento normal. (Fuerza el uso de la agregación en orden en los nodos remotos durante la agregación distribuida).

<div id="force_data_skipping_indices">
  ## force\_data\_skipping\_indices
</div>

Deshabilita la ejecución de la consulta si no se utilizaron los índices de omisión de datos especificados.

Considere el siguiente ejemplo:

```sql theme={null}
CREATE TABLE data
(
    key Int,
    d1 Int,
    d1_null Nullable(Int),
    INDEX d1_idx d1 TYPE minmax GRANULARITY 1,
    INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- la consulta producirá el error CANNOT_PARSE_TEXT.
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- la consulta producirá el error INDEX_NOT_USED.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- Correcto.
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- Correcto (ejemplo de parser con todas las funcionalidades).
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- la consulta producirá el error INDEX_NOT_USED, ya que d1_null_idx no se utiliza.
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- Correcto.
```

<div id="force_grouping_standard_compatibility">
  ## force\_grouping\_standard\_compatibility
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.9"},{"label": "1"},{"label": "Hace que la función GROUPING devuelva la misma salida que en el estándar SQL y otros DBMS"}]}]} />

Hace que la función GROUPING devuelva 1 cuando el argumento no se use como clave de agregación

<div id="force_index_by_date">
  ## force\_index\_by\_date
</div>

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

Desactiva la ejecución de la consulta si no se puede usar el índice de fecha.

Funciona con tablas de la familia MergeTree.

Si `force_index_by_date=1`, ClickHouse comprueba si la consulta tiene una condición sobre la clave de fecha que pueda usarse para restringir los rangos de datos. Si no hay una condición adecuada, lanza una excepción. Sin embargo, no comprueba si la condición reduce la cantidad de datos que se deben leer. Por ejemplo, la condición `Date != ' 2000-01-01 '` es aceptable incluso cuando coincide con todos los datos de la tabla (es decir, ejecutar la consulta requiere un escaneo completo). Para obtener más información sobre los rangos de datos en las tablas MergeTree, consulta [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_optimize_projection">
  ## force\_optimize\_projection
</div>

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

Habilita o deshabilita el uso obligatorio de [proyecciones](/es/reference/engines/table-engines/mergetree-family/mergetree#projections) en las consultas `SELECT` cuando está habilitada la optimización de proyecciones (consulta el ajuste [optimize\_use\_projections](#optimize_use_projections)).

Valores posibles:

* 0 — La optimización de proyecciones no es obligatoria.
* 1 — La optimización de proyecciones es obligatoria.

<div id="force_optimize_projection_name">
  ## force\_optimize\_projection\_name
</div>

Si se establece como una cadena no vacía, compruebe que esta proyección se utilice en la consulta al menos una vez.

Valores posibles:

* cadena: nombre de la proyección que se utiliza en una consulta

<div id="force_optimize_skip_unused_shards">
  ## force\_optimize\_skip\_unused\_shards
</div>

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

Habilita o deshabilita la ejecución de consultas si [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards) está habilitado y no es posible omitir los segmentos no utilizados. Si no es posible omitirlos y esta configuración está habilitada, se lanzará una excepción.

Valores posibles:

* 0 — Deshabilitado. ClickHouse no lanza ninguna excepción.
* 1 — Habilitado. La ejecución de consultas se deshabilita solo si la tabla tiene una clave de segmentación.
* 2 — Habilitado. La ejecución de consultas se deshabilita independientemente de si la tabla tiene definida una clave de segmentación.

<div id="force_optimize_skip_unused_shards_nesting">
  ## force\_optimize\_skip\_unused\_shards\_nesting
</div>

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

Controla [`force_optimize_skip_unused_shards`](#force_optimize_skip_unused_shards) en función del nivel de anidamiento de la consulta distribuida (es decir, cuando tiene una tabla `Distributed` que consulta otra tabla `Distributed`), por lo que sigue requiriendo [`force_optimize_skip_unused_shards`](#force_optimize_skip_unused_shards).

Valores posibles:

* 0 - Deshabilitado; `force_optimize_skip_unused_shards` funciona siempre.
* 1 — Habilita `force_optimize_skip_unused_shards` solo para el primer nivel.
* 2 — Habilita `force_optimize_skip_unused_shards` hasta el segundo nivel.

<div id="force_primary_key">
  ## force\_primary\_key
</div>

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

Deshabilita la ejecución de la consulta si no es posible usar el índice de la clave primaria.

Funciona con tablas de la familia MergeTree.

Si `force_primary_key=1`, ClickHouse comprueba si la consulta tiene una condición sobre la clave primaria que pueda usarse para restringir los rangos de datos. Si no existe una condición adecuada, lanza una excepción. Sin embargo, no comprueba si la condición reduce la cantidad de datos que se deben leer. Para obtener más información sobre los rangos de datos en las tablas MergeTree, consulte [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree).

<div id="force_remove_data_recursively_on_drop">
  ## force\_remove\_data\_recursively\_on\_drop
</div>

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

Elimina los datos de forma recursiva en la consulta DROP. Evita el error 'El directorio no está vacío', pero puede eliminar silenciosamente datos detached

<div id="formatdatetime_e_with_space_padding">
  ## formatdatetime\_e\_with\_space\_padding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se mejoró la compatibilidad con MySQL DATE_FORMAT/STR_TO_DATE"}]}]} />

El especificador de formato '%e' de la función 'formatDateTime' imprime los días de un solo dígito con un espacio delante, por ejemplo, ' 2' en lugar de '2'.

<div id="formatdatetime_f_prints_scale_number_of_digits">
  ## formatdatetime\_f\_prints\_scale\_number\_of\_digits
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

El formateador '%f' de la función 'formatDateTime' imprime solo la cantidad de dígitos correspondiente a la escala de un DateTime64, en lugar de 6 dígitos fijos.

<div id="formatdatetime_f_prints_single_zero">
  ## formatdatetime\_f\_prints\_single\_zero
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "Se mejoró la compatibilidad con MySQL DATE_FORMAT()/STR_TO_DATE()"}]}]} />

El formateador '%f' de la función 'formatDateTime' imprime un único cero en lugar de seis ceros si el valor formateado no tiene fracciones de segundo.

<div id="formatdatetime_format_without_leading_zeros">
  ## formatdatetime\_format\_without\_leading\_zeros
</div>

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

Los formateadores '%c', '%l' y '%k' de la función 'formatDateTime' muestran los meses y las horas sin ceros a la izquierda.

<div id="formatdatetime_parsedatetime_m_is_month_name">
  ## formatdatetime\_parsedatetime\_m\_is\_month\_name
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1"},{"label": "Se mejoró la compatibilidad con MySQL DATE_FORMAT/STR_TO_DATE"}]}]} />

El especificador de formato '%M' en las funciones 'formatDateTime' y 'parseDateTime' imprime/analiza el nombre del mes en lugar de los minutos.

<div id="fsync_metadata">
  ## fsync\_metadata
</div>

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

Habilita o deshabilita [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) al escribir archivos `.sql`. Está habilitado de forma predeterminada.

Tiene sentido deshabilitarlo si el server tiene millones de tablas pequeñas que se crean y destruyen constantemente.

<div id="function_date_trunc_return_type_behavior">
  ## function\_date\_trunc\_return\_type\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Se añade una nueva configuración para conservar el comportamiento anterior de la función dateTrunc"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Se cambia el tipo de resultado de la función dateTrunc para argumentos DateTime64/Date32 a DateTime64/Date32, independientemente de la unidad de tiempo, para obtener el resultado correcto con valores negativos"}]}]} />

Permite cambiar el comportamiento del tipo de resultado de la función `dateTrunc`.

Valores posibles:

* 0 - Cuando el segundo argumento es `DateTime64/Date32`, el tipo de retorno será `DateTime64/Date32` independientemente de la unidad de tiempo del primer argumento.
* 1 - Para `Date32`, el resultado siempre es `Date`. Para `DateTime64`, el resultado es `DateTime` para las unidades de tiempo `second` y superiores.

<div id="function_implementation">
  ## function\_implementation
</div>

Elija la implementación de la función para un destino específico o Variant (experimental). Si se deja vacío, se habilitan todas.

<div id="function_json_value_return_type_allow_complex">
  ## function\_json\_value\_return\_type\_allow\_complex
</div>

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

Controla si se permite devolver tipos complejos (como struct, array y map) en la función json\_value.

```sql theme={null}
SELECT JSON_VALUE('{"hello":{"world":"!"}}', '$.hello') settings function_json_value_return_type_allow_complex=true

┌─JSON_VALUE('{"hello":{"world":"!"}}', '$.hello')─┐
│ {"world":"!"}                                    │
└──────────────────────────────────────────────────┘

1 row in set. Elapsed: 0.001 sec.
```

Valores posibles:

* true — Se permite.
* false — No se permite.

<div id="function_json_value_return_type_allow_nullable">
  ## function\_json\_value\_return\_type\_allow\_nullable
</div>

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

Controla si se permite devolver `NULL` cuando no existe ningún valor para la función JSON\_VALUE.

```sql theme={null}
SELECT JSON_VALUE('{"hello":"world"}', '$.b') settings function_json_value_return_type_allow_nullable=true;

┌─JSON_VALUE('{"hello":"world"}', '$.b')─┐
│ ᴺᵁᴸᴸ                                   │
└────────────────────────────────────────┘

1 row in set. Elapsed: 0.001 sec.
```

Valores posibles:

* true — Se permite.
* false — No se permite.

<div id="function_locate_has_mysql_compatible_argument_order">
  ## function\_locate\_has\_mysql\_compatible\_argument\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Aumenta la compatibilidad con la función `locate` de MySQL."}]}]} />

Controla el orden de los argumentos de la función [locate](/es/reference/functions/regular-functions/string-search-functions#locate).

Valores posibles:

* 0 — La función `locate` acepta los argumentos `(haystack, needle[, start_pos])`.
* 1 — La función `locate` acepta los argumentos `(needle, haystack, [, start_pos])` (comportamiento compatible con MySQL)

<div id="function_range_max_elements_in_block">
  ## function\_range\_max\_elements\_in\_block
</div>

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

Establece el umbral de seguridad para el volumen de datos generado por la función [range](/es/reference/functions/regular-functions/array-functions#range). Define el número máximo de valores que la función puede generar por bloque de datos (la suma de los tamaños de los arrays para cada fila de un bloque).

Valores posibles:

* Entero positivo.

**Véase también**

* [`max_block_size`](#max_block_size)
* [`min_insert_block_size_rows`](#min_insert_block_size_rows)

<div id="function_sleep_max_microseconds_per_block">
  ## function\_sleep\_max\_microseconds\_per\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.7"},{"label": "3000000"},{"label": "En versiones anteriores, el tiempo máximo de suspensión de 3 segundos se aplicaba solo a `sleep`, pero no a la función `sleepEachRow`. En la nueva versión, introducimos esta configuración. Si establece la compatibilidad con las versiones anteriores, desactivaremos el límite por completo."}]}]} />

Número máximo de microsegundos durante los que la función `sleep` puede suspenderse por cada bloque. Si un usuario la llama con un valor mayor, lanza una excepción. Es un umbral de seguridad.

<div id="function_visible_width_behavior">
  ## function\_visible\_width\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "Cambiamos el comportamiento predeterminado de `visibleWidth` para que fuera más preciso"}]}]} />

Versión del comportamiento de `visibleWidth`. 0: solo cuenta el número de puntos de código; 1: cuenta correctamente los caracteres de ancho cero y los caracteres combinantes, cuenta los caracteres de ancho completo como dos, estima el ancho de las tabulaciones y cuenta los caracteres de supresión.

<div id="functions_h3_default_if_invalid">
  ## functions\_h3\_default\_if\_invalid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Una nueva configuración del comportamiento heredado para permitir entradas no válidas en las funciones h3"}]}]} />

Si es false, las funciones h3, por ejemplo h3CellAreaM2, generan una excepción si la entrada no es válida. Si es true, devuelven 0 o el valor predeterminado.

<div id="geo_distance_returns_float64_on_float64_arguments">
  ## geo\_distance\_returns\_float64\_on\_float64\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Aumentar la precisión predeterminada."}]}]} />

Si los cuatro argumentos de las funciones `geoDistance`, `greatCircleDistance` y `greatCircleAngle` son Float64, estas devuelven Float64 y usan precisión doble para los cálculos internos. En versiones anteriores de ClickHouse, estas funciones siempre devolvían Float32.

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "Una nueva configuración del comportamiento heredado para definir el orden de los argumentos lon y lat"}]}]} />

La función `geoToH3` acepta (lon, lat) si está configurada como 'lon\_lat' y (lat, lon) si está configurada como 'lat\_lon'.

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

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

Número máximo de direcciones permitidas (para sistemas de almacenamiento externos, funciones de tabla, etc.).

<div id="grace_hash_join_initial_buckets">
  ## grace\_hash\_join\_initial\_buckets
</div>

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

Número inicial de buckets de grace hash join

<div id="grace_hash_join_max_buckets">
  ## grace\_hash\_join\_max\_buckets
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1024" />

Límite en el número de buckets de grace hash join

<div id="group_by_overflow_mode">
  ## group\_by\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowModeGroupBy" default_value="throw" />

Establece qué ocurre cuando el número de claves únicas para la agregación supera el límite:

* `throw`: lanzar una excepción
* `break`: detener la ejecución de la consulta y devolver el resultado parcial
* `any`: continuar la agregación para las claves que entraron en el conjunto, pero sin añadir nuevas claves al conjunto.

Usar el valor `any` permite ejecutar una aproximación de GROUP BY. La calidad de
esta aproximación depende de la naturaleza estadística de los datos.

<div id="group_by_two_level_threshold">
  ## group\_by\_two\_level\_threshold
</div>

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

A partir de cuántas claves comienza una agregación en dos niveles. 0: el umbral no está establecido.

<div id="group_by_two_level_threshold_bytes">
  ## group\_by\_two\_level\_threshold\_bytes
</div>

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

A partir de qué tamaño del estado de agregación, en bytes, se empieza a usar una agregación en dos niveles. 0: el umbral no está establecido. La agregación en dos niveles se utiliza cuando se alcanza al menos uno de los umbrales.

<div id="group_by_use_nulls">
  ## group\_by\_use\_nulls
</div>

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

Cambia la forma en que la [cláusula GROUP BY](/es/reference/statements/select/group-by) trata los tipos de las claves de agregación.
Cuando se usan los especificadores `ROLLUP`, `CUBE` o `GROUPING SETS`, es posible que algunas claves de agregación no se utilicen para generar algunas filas de resultados.
Las columnas de estas claves se rellenan con el valor predeterminado o con `NULL` en las filas correspondientes, según esta configuración.

Valores posibles:

* 0 — Se utiliza el valor predeterminado del tipo de clave de agregación para generar los valores faltantes.
* 1 — ClickHouse ejecuta `GROUP BY` de la misma forma que indica el estándar SQL. Los tipos de las claves de agregación se convierten a [Nullable](/es/reference/data-types/nullable). Las columnas de las claves de agregación correspondientes se rellenan con [NULL](/es/reference/syntax#null) en las filas donde no se usaron.

Véase también:

* [cláusula GROUP BY](/es/reference/statements/select/group-by)

<div id="h3togeo_lon_lat_result_order">
  ## h3togeo\_lon\_lat\_result\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

La función 'h3ToGeo' devuelve (lon, lat) si es true; de lo contrario, (lat, lon).

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="10000" />

Tiempo de espera, en milisegundos, para recibir el paquete Hello de las réplicas durante el handshake.

<div id="hdfs_create_new_file_on_insert">
  ## hdfs\_create\_new\_file\_on\_insert
</div>

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

Habilita o deshabilita la creación de un archivo nuevo en cada insert en las tablas del motor HDFS. Si está habilitado, en cada insert se creará un nuevo archivo HDFS con un nombre similar a este patrón:

inicial: `data.Parquet.gz` -> `data.1.Parquet.gz` -> `data.2.Parquet.gz`, etc.

Valores posibles:

* 0 — la consulta `INSERT` añade nuevos datos al final del archivo.
* 1 — la consulta `INSERT` crea un archivo nuevo.

<div id="hdfs_ignore_file_doesnt_exist">
  ## hdfs\_ignore\_file\_doesnt\_exist
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite devolver 0 filas cuando los archivos solicitados no existen, en lugar de lanzar una excepción en el motor de tabla HDFS"}]}]} />

Ignora la ausencia de un archivo si este no existe al leer determinadas claves.

Valores posibles:

* 1 — `SELECT` devuelve un resultado vacío.
* 0 — `SELECT` lanza una excepción.

<div id="hdfs_replication">
  ## hdfs\_replication
</div>

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

El número real de réplicas puede especificarse al crear el archivo hdfs.

<div id="hdfs_skip_empty_files">
  ## hdfs\_skip\_empty\_files
</div>

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

Habilita o deshabilita la omisión de archivos vacíos en las tablas con motor [HDFS](/es/reference/engines/table-engines/integrations/hdfs).

Valores posibles:

* 0 — `SELECT` lanza una excepción si el archivo vacío no es compatible con el formato solicitado.
* 1 — `SELECT` devuelve un resultado vacío para un archivo vacío.

<div id="hdfs_throw_on_zero_files_match">
  ## hdfs\_throw\_on\_zero\_files\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite generar un error cuando la solicitud ListObjects no encuentra ningún archivo en el motor HDFS, en lugar de devolver un resultado de consulta vacío"}]}]} />

Genera un error si no se encuentra ningún archivo que coincida según las reglas de expansión de glob.

Valores posibles:

* 1 — `SELECT` lanza una excepción.
* 0 — `SELECT` devuelve un resultado vacío.

<div id="hdfs_truncate_on_insert">
  ## hdfs\_truncate\_on\_insert
</div>

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

Habilita o deshabilita el truncado antes de un `insert` en tablas con el engine HDFS. Si está deshabilitado, se lanzará una excepción al intentar hacer un `insert` si el archivo ya existe en HDFS.

Valores posibles:

* 0 — la consulta `INSERT` agrega datos nuevos al final del archivo.
* 1 — la consulta `INSERT` reemplaza el contenido existente del archivo por los datos nuevos.

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "Iniciar una nueva conexión en las solicitudes hedged después de 50 ms en lugar de 100, para ajustarse al tiempo de espera de conexión anterior"}]}]} />

Tiempo de espera para establecer una conexión con una réplica en solicitudes hedged

<div id="highlight_max_matches_per_row">
  ## highlight\_max\_matches\_per\_row
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000"},{"label": "Nueva configuración para limitar el número de coincidencias de resaltado por fila y evitar un uso excesivo de memoria."}]}]} />

Establece el número máximo de coincidencias de resaltado por fila en la función [highlight](/es/reference/functions/regular-functions/string-search-functions#highlight). Úselo para evitar un uso excesivo de memoria al resaltar patrones muy repetitivos en textos grandes.

Valores posibles:

* Entero positivo.

<div id="hnsw_candidate_list_size_for_search">
  ## hnsw\_candidate\_list\_size\_for\_search
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "256"},{"label": "Nueva configuración. Anteriormente, el valor podía especificarse opcionalmente en CREATE INDEX y el valor predeterminado era 64."}]}]} />

El tamaño de la lista dinámica de candidatos al buscar en el índice de similitud vectorial, también conocido como 'ef\_search'.

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

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

Tiempo de expiración de HSTS. 0 significa deshabilitar HSTS.

<div id="http_connection_timeout">
  ## http\_connection\_timeout
</div>

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

Tiempo de espera de la conexión HTTP (en segundos).

Valores posibles:

* Cualquier número entero positivo.
* 0 - Desactivado (tiempo de espera infinito).

<div id="http_headers_progress_interval_ms">
  ## http\_headers\_progress\_interval\_ms
</div>

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

No envíe la cabecera HTTP X-ClickHouse-Progress con una frecuencia superior al intervalo especificado.

<div id="http_headers_read_timeout">
  ## http\_headers\_read\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "30"},{"label": "Nueva configuración para limitar el tiempo total de lectura de las cabeceras de la solicitud HTTP, lo que protege frente a ataques slowloris."}]}]} />

Tiempo máximo, en segundos, para leer todas las cabeceras de la solicitud HTTP. Es un plazo total para toda la fase de análisis de cabeceras, no un `timeout` por lectura. Protege frente a ataques de tipo slowloris, en los que un cliente envía lentamente los datos de las cabeceras para mantener abiertas las conexiones.

<div id="http_make_head_request">
  ## http\_make\_head\_request
</div>

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

La configuración `http_make_head_request` permite ejecutar una solicitud `HEAD` al leer datos desde HTTP para obtener información sobre el archivo que se va a leer, como su tamaño. Dado que está habilitada de forma predeterminada, puede ser conveniente desactivar esta configuración cuando el server no admita solicitudes `HEAD`.

<div id="http_max_field_name_size">
  ## http\_max\_field\_name\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "4096"},{"label": "Reduce el valor predeterminado para limitar el uso de memoria antes de la autenticación de las conexiones HTTP."}]}]} />

Longitud máxima del nombre del campo del encabezado HTTP

<div id="http_max_field_value_size">
  ## http\_max\_field\_value\_size
</div>

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

Longitud máxima del valor de un campo en el encabezado HTTP

<div id="http_max_fields">
  ## http\_max\_fields
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000"},{"label": "Se reduce el valor predeterminado para limitar el uso de memoria antes de la autenticación en las conexiones HTTP."}]}]} />

Número máximo de campos en el encabezado HTTP

<div id="http_max_multipart_form_data_size">
  ## http\_max\_multipart\_form\_data\_size
</div>

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

Límite del tamaño del contenido `multipart/form-data`. Esta configuración no puede analizarse a partir de los parámetros de URL y debe establecerse en un perfil de usuario. Tenga en cuenta que el contenido se analiza y las tablas externas se crean en memoria antes de que comience la ejecución de la consulta. Además, este es el único límite que surte efecto en esa etapa (los límites de uso máximo de memoria y de tiempo máximo de ejecución no tienen efecto durante la lectura de form data de HTTP).

<div id="http_max_request_header_size">
  ## http\_max\_request\_header\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10485760"},{"label": "Nueva configuración para limitar el tamaño total de los encabezados de la solicitud HTTP antes de la autenticación."}]}]} />

Tamaño máximo total de todos los encabezados de la solicitud HTTP (nombres y valores combinados), en bytes.

<div id="http_max_request_param_data_size">
  ## http\_max\_request\_param\_data\_size
</div>

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

Límite del tamaño de los datos de la solicitud utilizados como parámetro de consulta en solicitudes HTTP predefinidas.

<div id="http_max_tries">
  ## http\_max\_tries
</div>

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

Número máximo de intentos de lectura a través de HTTP.

<div id="http_max_uri_size">
  ## http\_max\_uri\_size
</div>

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

Establece la longitud máxima del URI de una solicitud HTTP.

Valores posibles:

* Entero positivo.

<div id="http_native_compression_disable_checksumming_on_decompress">
  ## http\_native\_compression\_disable\_checksumming\_on\_decompress
</div>

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

Habilita o deshabilita la verificación de la suma de comprobación al descomprimir los datos de HTTP POST del cliente. Se usa solo para el formato de compresión nativo de ClickHouse (no se utiliza con `gzip` ni `deflate`).

Para obtener más información, consulte la [descripción de la interfaz HTTP](/es/concepts/features/interfaces/http).

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="http_receive_timeout">
  ## http\_receive\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "Véase http_send_timeout."}]}]} />

Tiempo de espera de recepción de HTTP (en segundos).

Valores posibles:

* Cualquier entero positivo.
* 0 - Deshabilitado (tiempo de espera infinito).

<div id="http_response_buffer_size">
  ## http\_response\_buffer\_size
</div>

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

La cantidad de bytes que se almacenan en búfer en la memoria del servidor antes de enviar una respuesta HTTP al cliente o volcarlos al disco (cuando http\_wait\_end\_of\_query está habilitado).

<div id="http_response_headers">
  ## http\_response\_headers
</div>

<SettingsInfoBlock type="Map" default_value="{}" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": ""},{"label": "Nueva configuración."}]}]} />

Permite añadir o sobrescribir cabeceras HTTP que el servidor devolverá en la respuesta cuando el resultado de la consulta sea correcto.
Esto solo afecta a la interfaz HTTP.

Si la cabecera ya está establecida de forma predeterminada, el valor proporcionado la sobrescribirá.
Si la cabecera no estaba establecida de forma predeterminada, se añadirá a la lista de cabeceras.
Las cabeceras que el servidor establece de forma predeterminada y que esta configuración no sobrescribe permanecerán.

Esta configuración permite establecer una cabecera con un valor constante. Actualmente no hay forma de establecer una cabecera con un valor calculado dinámicamente.

Ni los nombres ni los valores pueden contener caracteres de control ASCII.

Si implementa una aplicación con UI que permite a los usuarios modificar la configuración, pero al mismo tiempo toma decisiones en función de las cabeceras devueltas, se recomienda restringir esta configuración a readonly.

Ejemplo: `SET http_response_headers = '{"Content-Type": "image/png"}'`

<div id="http_retry_initial_backoff_ms">
  ## http\_retry\_initial\_backoff\_ms
</div>

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

Milisegundos mínimos de backoff al reintentar la lectura mediante HTTP

<div id="http_retry_max_backoff_ms">
  ## http\_retry\_max\_backoff\_ms
</div>

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

Número máximo de milisegundos de backoff al reintentar una lectura mediante http

<div id="http_send_timeout">
  ## http\_send\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "3 minutos parece excesivo. Ten en cuenta que este es el timeout de una única llamada de escritura en red, no de toda la operación de carga."}]}]} />

Tiempo de espera de envío HTTP (en segundos).

Valores posibles:

* Cualquier entero positivo.
* 0 - Deshabilitado (timeout infinito).

<Note>
  Se aplica solo al perfil predeterminado. Es necesario reiniciar el servidor para que los cambios surtan efecto.
</Note>

<div id="http_skip_not_found_url_for_globs">
  ## http\_skip\_not\_found\_url\_for\_globs
</div>

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

Omitir las URL de los globs que devuelvan el error HTTP\_NOT\_FOUND

<div id="http_wait_end_of_query">
  ## http\_wait\_end\_of\_query
</div>

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

Activa el almacenamiento en búfer de la respuesta HTTP en el servidor.

<div id="http_write_exception_in_output_format">
  ## http\_write\_exception\_in\_output\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "Se cambió para mantener la coherencia entre formatos"}]}, {"id": "row-2","items": [{"label": "23.9"},{"label": "1"},{"label": "Genera JSON/XML válido cuando se produce una excepción en HTTP streaming."}]}]} />

Escribe la excepción en el formato de salida para que la salida sea válida. Funciona con los formatos JSON y XML.

<div id="http_zlib_compression_level">
  ## http\_zlib\_compression\_level
</div>

<SettingsInfoBlock type="Int64" default_value="3" />

Establece el nivel de compresión de los datos en la respuesta a una solicitud HTTP si [enable\_http\_compression = 1](#enable_http_compression).

Valores posibles: números del 1 al 9.

<div id="iceberg_compaction_data_cleanup">
  ## iceberg\_compaction\_data\_cleanup
</div>

<SettingsInfoBlock type="Segundos" default_value="10800" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10800"},{"label": "Nueva opción de configuración"}]}]} />

Tiempo tras el cual se eliminarán los datos.

<div id="iceberg_compaction_delay_bias">
  ## iceberg\_compaction\_delay\_bias
</div>

<SettingsInfoBlock type="Segundos" default_value="10800" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10800"},{"label": "Nueva configuración"}]}]} />

Tiempo mínimo de espera entre 2 operaciones de compactación en segundo plano.

<div id="iceberg_data_file_size_lower_threshold_compaction">
  ## iceberg\_data\_file\_size\_lower\_threshold\_compaction
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10485760"},{"label": "Nueva configuración"}]}]} />

Umbral de compactación para archivos de datos en Iceberg.

<div id="iceberg_data_file_size_upper_threshold_compaction">
  ## iceberg\_data\_file\_size\_upper\_threshold\_compaction
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10737418240"},{"label": "Nueva configuración"}]}]} />

Umbral para los archivos de datos de compactación en Iceberg.

<div id="iceberg_delete_data_on_drop">
  ## iceberg\_delete\_data\_on\_drop
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva opción"}]}]} />

Indica si se deben eliminar todos los archivos de Iceberg al hacer drop.

<div id="iceberg_expire_default_max_ref_age_ms">
  ## iceberg\_expire\_default\_max\_ref\_age\_ms
</div>

<SettingsInfoBlock type="Int64" default_value="9223372036854775807" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "9223372036854775807"},{"label": "Nueva configuración."}]}]} />

Valor predeterminado de la propiedad `history.expire.max-ref-age-ms` de la tabla Iceberg que utiliza `expire_snapshots` cuando dicha propiedad no está definida.

<div id="iceberg_expire_default_max_snapshot_age_ms">
  ## iceberg\_expire\_default\_max\_snapshot\_age\_ms
</div>

<SettingsInfoBlock type="Int64" default_value="432000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "432000000"},{"label": "Nueva configuración."}]}]} />

Valor predeterminado de la propiedad de tabla Iceberg `history.expire.max-snapshot-age-ms` que usa `expire_snapshots` cuando dicha propiedad no está presente.

<div id="iceberg_expire_default_min_snapshots_to_keep">
  ## iceberg\_expire\_default\_min\_snapshots\_to\_keep
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Valor predeterminado de la propiedad `history.expire.min-snapshots-to-keep` de la tabla Iceberg que `expire_snapshots` utiliza cuando dicha propiedad no está definida.

<div id="iceberg_insert_max_bytes_in_data_file">
  ## iceberg\_insert\_max\_bytes\_in\_data\_file
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1073741824"},{"label": "Nueva configuración."}]}]} />

Número máximo de bytes del archivo de datos Parquet de Iceberg en una operación de inserción.

<div id="iceberg_insert_max_partitions">
  ## iceberg\_insert\_max\_partitions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "100"},{"label": "Nueva configuración."}]}]} />

Número máximo de particiones permitido por operación de inserción para el motor de tabla Iceberg.

<div id="iceberg_insert_max_rows_in_data_file">
  ## iceberg\_insert\_max\_rows\_in\_data\_file
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1000000"},{"label": "Nueva configuración."}]}]} />

Número máximo de filas en el archivo de datos Parquet de Iceberg durante una operación de inserción.

<div id="iceberg_max_number_datafiles_to_compact">
  ## iceberg\_max\_number\_datafiles\_to\_compact
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

Umbral de compactación de archivos de datos en Iceberg.

<div id="iceberg_metadata_compression_method">
  ## iceberg\_metadata\_compression\_method
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": ""},{"label": "Nueva opción"}]}]} />

Método de compresión del archivo `.metadata.json`.

<div id="iceberg_metadata_log_level">
  ## iceberg\_metadata\_log\_level
</div>

<SettingsInfoBlock type="IcebergMetadataLogLevel" default_value="none" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "none"},{"label": "Nueva configuración."}]}]} />

Controla el nivel de registro de metadatos de las tablas Iceberg en system.iceberg\_metadata\_log.
Normalmente, esta configuración puede modificarse con fines de depuración.

Valores posibles:

* none - Sin registro de metadatos.
* metadata - Archivo raíz metadata.json.
* manifest\_list\_metadata - Todo lo anterior + metadatos de la lista de manifiestos Avro correspondiente a una instantánea.
* manifest\_list\_entry - Todo lo anterior + entradas de la lista de manifiestos Avro.
* manifest\_file\_metadata - Todo lo anterior + metadatos de los archivos de manifiesto Avro recorridos.
* manifest\_file\_entry - Todo lo anterior + entradas de los archivos de manifiesto Avro recorridos.

<div id="iceberg_metadata_staleness_ms">
  ## iceberg\_metadata\_staleness\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración que permite usar la versión de metadatos en caché en las operaciones READ para evitar obtenerla del catálogo remoto"}]}]} />

Si no es cero, omite la obtención de metadatos de Iceberg desde el catálogo remoto si existe una instantánea de metadatos en caché más reciente que la ventana de antigüedad especificada. Un valor de cero significa que siempre se obtiene la versión más reciente de los metadatos desde el catálogo remoto. Configurar este valor con un valor distinto de cero implica aceptar cierta antigüedad a cambio de una menor latencia en las operaciones de lectura.

<div id="iceberg_orphan_files_older_than_seconds">
  ## iceberg\_orphan\_files\_older\_than\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "259200"},{"label": "Nueva configuración para el umbral de antigüedad predeterminado de los archivos huérfanos"}]}]} />

Umbral de antigüedad predeterminado, en segundos, para eliminar archivos huérfanos en tablas Iceberg. Los archivos más recientes que este umbral no se consideran huérfanos. Se usa cuando se omite el argumento older\_than en la llamada al procedimiento remove\_orphan\_files(). El valor predeterminado es 259200 (3 días).

<div id="iceberg_snapshot_id">
  ## iceberg\_snapshot\_id
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Consulta la tabla Iceberg con el ID de snapshot especificado.

<div id="iceberg_timestamp_ms">
  ## iceberg\_timestamp\_ms
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Consulta la tabla Iceberg usando la instantánea vigente en una marca de tiempo determinada.

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

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

Tiempo de espera para cerrar las conexiones TCP inactivas tras el número de segundos especificado.

Valores posibles:

* Entero positivo (0: cerrar inmediatamente, tras 0 segundos).

<div id="ignore_cold_parts_seconds">
  ## ignore\_cold\_parts\_seconds
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

Solo tiene efecto en ClickHouse Cloud. Excluye las partes de datos nuevas de las consultas SELECT hasta que se precalienten (consulta [cache\_populated\_by\_fetch](/es/reference/settings/merge-tree-settings#cache_populated_by_fetch)) o alcancen esta antigüedad en segundos. Solo para Replicated-/SharedMergeTree.

<div id="ignore_data_skipping_indices">
  ## ignore\_data\_skipping\_indices
</div>

Ignora los índices de omisión de datos especificados si la consulta los utiliza.

Considere el siguiente ejemplo:

```sql theme={null}
CREATE TABLE data
(
    key Int,
    x Int,
    y Int,
    INDEX x_idx x TYPE minmax GRANULARITY 1,
    INDEX y_idx y TYPE minmax GRANULARITY 1,
    INDEX xy_idx (x,y) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

INSERT INTO data VALUES (1, 2, 3);

SELECT * FROM data;
SELECT * FROM data SETTINGS ignore_data_skipping_indices=''; -- la consulta producirá el error CANNOT_PARSE_TEXT.
SELECT * FROM data SETTINGS ignore_data_skipping_indices='x_idx'; -- Ok.
SELECT * FROM data SETTINGS ignore_data_skipping_indices='na_idx'; -- Ok.

SELECT * FROM data WHERE x = 1 AND y = 1 SETTINGS ignore_data_skipping_indices='xy_idx',force_data_skipping_indices='xy_idx' ; -- la consulta producirá el error INDEX_NOT_USED, ya que xy_idx está explícitamente ignorado.
SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';
```

La consulta sin ignorar ningún índice:

```sql theme={null}
EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2;

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
      Skip
        Name: xy_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
```

Al ignorar el índice `xy_idx`:

```sql theme={null}
EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
```

Se aplica a las tablas de la familia MergeTree.

<div id="ignore_drop_queries_probability">
  ## ignore\_drop\_queries\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "0"},{"label": "Permite ignorar las consultas DROP en el servidor con una probabilidad especificada para fines de prueba"}]}]} />

Si está habilitado, el servidor ignorará todas las consultas DROP TABLE con la probabilidad especificada (para los motores Memory y JOIN, sustituirá DROP por TRUNCATE). Se utiliza con fines de prueba

<div id="ignore_format_null_for_explain">
  ## ignore\_format\_null\_for\_explain
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "FORMAT Null ahora se ignora de forma predeterminada en las consultas EXPLAIN"}]}]} />

Si está habilitado, `FORMAT Null` se ignorará en las consultas `EXPLAIN` y se usará en su lugar el formato de salida predeterminado.
Si está deshabilitado, las consultas `EXPLAIN` con `FORMAT Null` no producirán ninguna salida (comportamiento compatible con versiones anteriores).

<div id="ignore_materialized_views_with_dropped_target_table">
  ## ignore\_materialized\_views\_with\_dropped\_target\_table
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Añade una nueva configuración que permite ignorar las vistas materializadas cuya tabla de destino se ha eliminado"}]}]} />

Ignora las vistas materializadas cuya tabla de destino se ha eliminado al enviar a las vistas

<div id="ignore_on_cluster_for_replicated_access_entities_queries">
  ## ignore\_on\_cluster\_for\_replicated\_access\_entities\_queries
</div>

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

Omite la cláusula ON CLUSTER en las consultas de gestión de entidades de acceso replicadas.

<div id="ignore_on_cluster_for_replicated_database">
  ## ignore\_on\_cluster\_for\_replicated\_database
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Añade una nueva configuración para ignorar la cláusula ON CLUSTER en las consultas DDL con una base de datos Replicated."}]}]} />

Ignora siempre la cláusula ON CLUSTER en las consultas DDL con bases de datos Replicated.

<div id="ignore_on_cluster_for_replicated_named_collections_queries">
  ## ignore\_on\_cluster\_for\_replicated\_named\_collections\_queries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Ignora la cláusula ON CLUSTER en las consultas de gestión de colecciones con nombre replicadas."}]}]} />

Ignora la cláusula ON CLUSTER en las consultas de gestión de colecciones con nombre replicadas.

<div id="ignore_on_cluster_for_replicated_udf_queries">
  ## ignore\_on\_cluster\_for\_replicated\_udf\_queries
</div>

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

Omite la cláusula ON CLUSTER en las consultas de gestión de UDF replicadas.

<div id="implicit_select">
  ## implicit\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Permite escribir consultas SELECT simples sin la palabra clave SELECT al principio, lo que facilita su uso como calculadora; por ejemplo, `1 + 2` se convierte en una consulta válida.

En `clickhouse-local` está habilitado de forma predeterminada y puede deshabilitarse explícitamente.

<div id="implicit_table_at_top_level">
  ## implicit\_table\_at\_top\_level
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": ""},{"label": "Nueva configuración, usada en clickhouse-local"}]}]} />

Si no está vacía, las consultas sin FROM en el nivel superior leerán de esta tabla en lugar de system.one.

Se usa en clickhouse-local para procesar datos de entrada.
Un usuario puede establecer esta configuración explícitamente, pero no está pensada para ese tipo de uso.

Las subconsultas no se ven afectadas por esta configuración (ni las escalares ni las subconsultas de FROM o IN).
Las sentencias SELECT en el nivel superior de cadenas UNION, INTERSECT y EXCEPT se tratan de forma uniforme y se ven afectadas por esta configuración, independientemente de cómo se agrupen entre paréntesis.
No está especificado cómo afecta esta configuración a las vistas y a las consultas distribuidas.

La configuración acepta un nombre de tabla (en ese caso, la tabla se resuelve en la base de datos actual) o un nombre cualificado con el formato 'database.table'.
Tanto los nombres de la base de datos como los de la tabla deben ir sin comillas; solo se permiten identificadores simples.

<div id="implicit_transaction">
  ## implicit\_transaction
</div>

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

Si está habilitado y aún no se está dentro de una transacción, encapsula la consulta en una transacción completa (begin + commit o rollback)

<div id="inject_random_order_for_select_without_order_by">
  ## inject\_random\_order\_for\_select\_without\_order\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Si está habilitada, inserta 'ORDER BY rand()' en las consultas SELECT sin cláusula ORDER BY.
Se aplica solo cuando la profundidad de la subconsulta es 0. Las subconsultas e INSERT INTO ... SELECT no se ven afectados.
Si la construcción de nivel superior es UNION, se inserta 'ORDER BY rand()' en todos los elementos secundarios de forma independiente.
Solo es útil para pruebas y desarrollo (la ausencia de ORDER BY es una fuente de resultados de consultas no deterministas).

<div id="insert_allow_materialized_columns">
  ## insert\_allow\_materialized\_columns
</div>

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

Si esta configuración está habilitada, permite usar columnas materializadas en INSERT.

<div id="insert_deduplicate">
  ## insert\_deduplicate
</div>

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

Activa o desactiva la deduplicación de bloques de `INSERT` (para tablas Replicated\*).

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

De forma predeterminada, los bloques insertados en tablas replicadas mediante la instrucción `INSERT` se deduplican (consulte [Replicación de datos](/es/reference/engines/table-engines/mergetree-family/replication)).
De forma predeterminada, en las tablas replicadas solo se deduplican los 100 bloques más recientes de cada partición (consulte [replicated\_deduplication\_window](/es/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated\_deduplication\_window\_seconds](/es/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)).
Para las tablas no replicadas, consulte [non\_replicated\_deduplication\_window](/es/reference/settings/merge-tree-settings#non_replicated_deduplication_window).

<div id="insert_deduplication_token">
  ## insert\_deduplication\_token
</div>

Esta configuración permite que un usuario defina su propia semántica de deduplicación en MergeTree/ReplicatedMergeTree.
Por ejemplo, si proporciona un valor único para esta configuración en cada sentencia INSERT,
el usuario puede evitar que se deduzcan como duplicados los mismos datos insertados.

Valores posibles:

* Cualquier cadena

`insert_deduplication_token` se usa para la deduplicación *solo* cuando no está vacío.

En las tablas replicadas, de forma predeterminada, solo se deduplican las 100 inserciones más recientes de cada partición (consulte [replicated\_deduplication\_window](/es/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated\_deduplication\_window\_seconds](/es/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)).
Para las tablas no replicadas, consulte [non\_replicated\_deduplication\_window](/es/reference/settings/merge-tree-settings#non_replicated_deduplication_window).

<Note>
  `insert_deduplication_token` funciona a nivel de partición (igual que el checksum de `insert_deduplication`). Varias particiones pueden tener el mismo `insert_deduplication_token`.
</Note>

Ejemplo:

```sql theme={null}
CREATE TABLE test_table
( A Int64 )
ENGINE = MergeTree
ORDER BY A
SETTINGS non_replicated_deduplication_window = 100;

INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (1);

-- el siguiente insert no se deduplicará porque insert_deduplication_token es diferente
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test1' VALUES (1);

-- el siguiente insert se deduplicará porque insert_deduplication_token
-- es igual a uno de los anteriores
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (2);

SELECT * FROM test_table

┌─A─┐
│ 1 │
└───┘
┌─A─┐
│ 1 │
└───┘
```

<div id="insert_keeper_fault_injection_probability">
  ## insert\_keeper\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Probabilidad aproximada de fallo de una solicitud a Keeper durante la inserción. El valor válido debe estar en el intervalo \[0.0f, 1.0f]

<div id="insert_keeper_fault_injection_seed">
  ## insert\_keeper\_fault\_injection\_seed
</div>

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

0 - semilla aleatoria; de lo contrario, el valor de la configuración

<div id="insert_keeper_max_retries">
  ## insert\_keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "20"},{"label": "Habilita las reconexiones a Keeper en INSERT para mejorar la fiabilidad"}]}]} />

Esta configuración establece el número máximo de reintentos para las solicitudes a ClickHouse Keeper (o ZooKeeper) durante la inserción en MergeTree replicado. Solo se reintentan las solicitudes a Keeper que fallan debido a un error de red, un timeout de sesión de Keeper o un timeout de solicitud.

Valores posibles:

* Entero positivo.
* 0 — Los reintentos están deshabilitados

Valor predeterminado de Cloud: `20`.

Los reintentos de solicitudes a Keeper se realizan tras un cierto timeout. El timeout está controlado por las siguientes configuraciones: `insert_keeper_retry_initial_backoff_ms`, `insert_keeper_retry_max_backoff_ms`.
El primer reintento se realiza tras el timeout de `insert_keeper_retry_initial_backoff_ms`. Los timeouts posteriores se calculan de la siguiente manera:

```
timeout = min(insert_keeper_retry_max_backoff_ms, latest_timeout * 2)
```

Por ejemplo, si `insert_keeper_retry_initial_backoff_ms=100`, `insert_keeper_retry_max_backoff_ms=10000` y `insert_keeper_max_retries=8`, los tiempos de espera serán `100, 200, 400, 800, 1600, 3200, 6400, 10000`.

Además de la tolerancia a fallos, los reintentos también buscan ofrecer una mejor experiencia de usuario: permiten evitar que se devuelva un error durante la ejecución de INSERT si Keeper se reinicia, por ejemplo, a causa de una actualización.

<div id="insert_keeper_retry_initial_backoff_ms">
  ## insert\_keeper\_retry\_initial\_backoff\_ms
</div>

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

Tiempo de espera inicial (en milisegundos) para reintentar una solicitud fallida a Keeper durante la ejecución de la consulta INSERT

Valores posibles:

* Entero positivo.
* 0 — Sin tiempo de espera

<div id="insert_keeper_retry_max_backoff_ms">
  ## insert\_keeper\_retry\_max\_backoff\_ms
</div>

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

Tiempo de espera máximo (en milisegundos) para reintentar una solicitud de Keeper fallida durante la ejecución de una consulta INSERT

Valores posibles:

* Entero positivo.
* 0 — El tiempo de espera máximo no está limitado

<div id="insert_null_as_default">
  ## insert\_null\_as\_default
</div>

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

Habilita o deshabilita la inserción de [valores predeterminados](/es/reference/statements/create/table#default_values) en lugar de [NULL](/es/reference/syntax#null) en columnas con un tipo de datos no [Nullable](/es/reference/data-types/nullable).
Si el tipo de la columna no es Nullable y esta configuración está deshabilitada, al insertar `NULL` se produce una excepción. Si el tipo de la columna es Nullable, los valores `NULL` se insertan tal cual, independientemente de esta configuración.

Esta configuración se aplica a las consultas [INSERT ... SELECT](/es/reference/statements/insert-into#inserting-the-results-of-select). Ten en cuenta que las subconsultas `SELECT` pueden concatenarse con la cláusula `UNION ALL`.

Valores posibles:

* 0 — Insertar `NULL` en una columna no Nullable produce una excepción.
* 1 — Se inserta el valor predeterminado de la columna en lugar de `NULL`.

<div id="insert_quorum">
  ## insert\_quorum
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="0" />

<Note>
  Esta configuración no se aplica a SharedMergeTree; consulta [SharedMergeTree consistency](/es/products/cloud/features/infrastructure/shared-merge-tree#consistency) para obtener más información.
</Note>

Habilita las escrituras con quorum.

* Si `insert_quorum < 2`, las escrituras con quorum están deshabilitadas.
* Si `insert_quorum >= 2`, las escrituras con quorum están habilitadas.
* Si `insert_quorum = 'auto'`, usa la mayoría (`number_of_replicas / 2 + 1`) como número de quorum.

Escrituras con quorum

`INSERT` solo se realiza correctamente cuando ClickHouse logra escribir correctamente los datos en `insert_quorum` réplicas dentro de `insert_quorum_timeout`. Si, por cualquier motivo, el número de réplicas con escrituras correctas no alcanza `insert_quorum`, la escritura se considera fallida y ClickHouse eliminará el bloque insertado de todas las réplicas en las que ya se hayan escrito datos.

Cuando `insert_quorum_parallel` está deshabilitado, todas las réplicas del quorum son consistentes; es decir, contienen datos de todas las consultas `INSERT` anteriores (la secuencia de `INSERT` se lineariza). Al leer datos escritos mediante `insert_quorum` y con `insert_quorum_parallel` deshabilitado, puedes activar la consistencia secuencial para las consultas `SELECT` mediante [select\_sequential\_consistency](#select_sequential_consistency).

ClickHouse genera una excepción:

* Si el número de réplicas disponibles en el momento de la consulta es menor que `insert_quorum`.
* Cuando `insert_quorum_parallel` está deshabilitado y se intenta escribir datos mientras el bloque anterior aún no se ha insertado en `insert_quorum` réplicas. Esta situación puede darse si el usuario intenta realizar otra consulta `INSERT` en la misma tabla antes de que se complete la anterior con `insert_quorum`.

Véase también:

* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [insert\_quorum\_parallel](#insert_quorum_parallel)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_quorum_parallel">
  ## insert\_quorum\_parallel
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "Usar inserciones con cuórum en paralelo de forma predeterminada. Resulta mucho más práctico que las inserciones con cuórum secuenciales"}]}]} />

<Note>
  Esta configuración no se aplica a SharedMergeTree; consulta [consistencia de SharedMergeTree](/es/products/cloud/features/infrastructure/shared-merge-tree#consistency) para obtener más información.
</Note>

Habilita o deshabilita el paralelismo para las consultas `INSERT` con cuórum. Si está habilitado, se pueden enviar consultas `INSERT` adicionales mientras las consultas anteriores aún no hayan finalizado. Si está deshabilitado, se rechazarán escrituras adicionales en la misma tabla.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Véase también:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_quorum_timeout">
  ## insert\_quorum\_timeout
</div>

<SettingsInfoBlock type="Milisegundos" default_value="600000" />

Tiempo de espera, en milisegundos, para escribir en un quórum. Si el tiempo de espera ha transcurrido y todavía no se ha realizado ninguna escritura, ClickHouse generará una excepción y el cliente deberá repetir la consulta para escribir el mismo bloque en la misma o en cualquier otra réplica.

Véase también:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_parallel](#insert_quorum_parallel)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_shard_id">
  ## insert\_shard\_id
</div>

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

Si no es `0`, especifica el segmento de la tabla [Distributed](/es/reference/engines/table-engines/special/distributed) en el que se insertarán los datos de forma síncrona.

Si el valor de `insert_shard_id` es incorrecto, el servidor lanzará una excepción.

Para obtener el número de segmentos en `requested_cluster`, puede consultar la configuración del servidor o usar esta consulta:

```sql theme={null}
SELECT uniq(shard_num) FROM system.clusters WHERE cluster = 'requested_cluster';
```

Valores posibles:

* 0 — Desactivado.
* Cualquier número entre `1` y `shards_num` de la tabla [Distributed](/es/reference/engines/table-engines/special/distributed) correspondiente.

**Ejemplo**

Consulta:

```sql theme={null}
CREATE TABLE x AS system.numbers ENGINE = MergeTree ORDER BY number;
CREATE TABLE x_dist AS x ENGINE = Distributed('test_cluster_two_shards_localhost', currentDatabase(), x);
INSERT INTO x_dist SELECT * FROM numbers(5) SETTINGS insert_shard_id = 1;
SELECT * FROM x_dist ORDER BY number ASC;
```

Resultado:

```text theme={null}
┌─number─┐
│      0 │
│      0 │
│      1 │
│      1 │
│      2 │
│      2 │
│      3 │
│      3 │
│      4 │
│      4 │
└────────┘
```

<div id="interactive_delay">
  ## interactive\_delay
</div>

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

El intervalo, en microsegundos, para comprobar si se ha cancelado la ejecución de la petición y enviar el progreso.

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Establece el modo predeterminado de la consulta INTERSECT. Valores posibles: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo generará una excepción.

<div id="jemalloc_collect_profile_samples_in_trace_log">
  ## jemalloc\_collect\_profile\_samples\_in\_trace\_log
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva opción"}]}]} />

Recopila muestras de asignación y liberación de memoria de jemalloc en el registro de trazas.

<div id="jemalloc_enable_profiler">
  ## jemalloc\_enable\_profiler
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Habilita el perfilador de jemalloc para la consulta. Jemalloc tomará muestras de las asignaciones y de todas las liberaciones de memoria de las asignaciones muestreadas.
Los perfiles se pueden vaciar con SYSTEM JEMALLOC FLUSH PROFILE para analizarlos.
Las muestras también se pueden almacenar en system.trace\_log usando la configuración jemalloc\_collect\_global\_profile\_samples\_in\_trace\_log o la configuración de consulta jemalloc\_collect\_profile\_samples\_in\_trace\_log.
Consulta [Perfilado de asignaciones](/es/concepts/features/performance/allocation-profiling)

<div id="jemalloc_profile_text_collapsed_use_count">
  ## jemalloc\_profile\_text\_collapsed\_use\_count
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración para agregar por número de asignaciones en lugar de por bytes en el formato collapsed del perfil de heap de jemalloc"}]}]} />

Al usar el formato de salida 'collapsed' para el perfil de heap de jemalloc, se agrega por número de asignaciones en lugar de por bytes. Cuando es false (predeterminado), cada pila se pondera por bytes activos; cuando es true, por el número de asignaciones activas.

<div id="jemalloc_profile_text_output_format">
  ## jemalloc\_profile\_text\_output\_format
</div>

<SettingsInfoBlock type="JemallocProfileFormat" default_value="collapsed" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "collapsed"},{"label": "Nueva configuración para controlar el formato de salida de la tabla system.jemalloc_profile_text. Valores posibles: 'raw', 'symbolized', 'collapsed'"}]}]} />

Formato de salida del perfil de heap de jemalloc en la tabla system.jemalloc\_profile\_text. Puede ser: 'raw' (perfil sin procesar), 'symbolized' (formato jeprof con símbolos) o 'collapsed' (formato FlameGraph).

<div id="jemalloc_profile_text_symbolize_with_inline">
  ## jemalloc\_profile\_text\_symbolize\_with\_inline
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Nueva configuración para controlar si se incluyen frames inline al simbolizar el perfil del heap de jemalloc. Cuando está habilitada, los frames inline se incluyen a costa de una simbolización más lenta; cuando está deshabilitada, se omiten para obtener una salida más rápida"}]}]} />

Si se deben incluir frames inline al simbolizar el perfil del heap de jemalloc. Cuando está habilitada, los frames inline se incluyen, lo que puede ralentizar drásticamente el proceso de simbolización; cuando está deshabilitada, se omiten. Solo afecta a los formatos de salida 'symbolized' y 'collapsed'.

<div id="join_algorithm">
  ## join\_algorithm
</div>

<SettingsInfoBlock type="JoinAlgorithm" default_value="direct,parallel_hash,hash" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "direct,parallel_hash,hash"},{"label": "'default' quedó obsoleto en favor de algoritmos de join especificados explícitamente; además, ahora se prefiere parallel_hash a hash"}]}]} />

Especifica qué algoritmo de [JOIN](/es/reference/statements/select/join) se usa.

Se pueden especificar varios algoritmos, y se elegirá uno disponible para una consulta concreta según el tipo/la strictness y el motor de tabla.

Posibles valores:

* grace\_hash

Se usa [Grace hash join](https://en.wikipedia.org/wiki/Hash_join#Grace_hash_join). Grace hash ofrece una opción de algoritmo para realizar joins complejos con buen rendimiento, limitando al mismo tiempo el uso de memoria.

La primera fase de un grace join lee la tabla derecha y la divide en N buckets según el hash de las columnas clave (inicialmente, N es `grace_hash_join_initial_buckets`). Esto se hace de forma que cada bucket pueda procesarse de manera independiente. Las filas del primer bucket se añaden a una tabla hash en memoria, mientras que las demás se guardan en disco. Si la tabla hash supera el límite de memoria (por ejemplo, el definido por [`max_bytes_in_join`](/es/reference/settings/session-settings#max_bytes_in_join)), se incrementa el número de buckets y se vuelve a asignar el bucket correspondiente a cada fila. Las filas que no pertenezcan al bucket actual se vacían y se reasignan.

Admite `INNER/LEFT/RIGHT/FULL ALL/ANY JOIN`.

* hash

Se usa [Hash join algorithm](https://en.wikipedia.org/wiki/Hash_join). Es la implementación más genérica: admite todas las combinaciones de tipo y strictness, así como múltiples claves de join combinadas con `OR` en la sección `JOIN ON`.

Al usar el algoritmo `hash`, la parte derecha de `JOIN` se carga en RAM.

* parallel\_hash

Una variación de `hash` join que divide los datos en buckets y construye varias tablas hash en lugar de una, de forma concurrente, para acelerar este proceso.

Al usar el algoritmo `parallel_hash`, la parte derecha de `JOIN` se carga en RAM.

* partial\_merge

Una variación del [algoritmo sort-merge](https://en.wikipedia.org/wiki/Sort-merge_join), donde solo la tabla derecha se ordena por completo.

`RIGHT JOIN` y `FULL JOIN` solo se admiten con strictness `ALL` (`SEMI`, `ANTI`, `ANY` y `ASOF` no son compatibles).

Al usar el algoritmo `partial_merge`, ClickHouse ordena los datos y los vuelca a disco. El algoritmo `partial_merge` en ClickHouse difiere ligeramente de la implementación clásica. Primero, ClickHouse ordena la tabla derecha por las claves de join en bloques y crea un índice min-max para los bloques ordenados. Luego ordena partes de la tabla izquierda por la `join key` y las une con la tabla derecha. El índice min-max también se usa para omitir bloques innecesarios de la tabla derecha.

* direct

El algoritmo `direct` (también conocido como nested loop) realiza una búsqueda en la tabla derecha usando como claves las filas de la tabla izquierda.
Es compatible con motores especiales como [Dictionary](/es/reference/engines/table-engines/special/dictionary), [EmbeddedRocksDB](/es/reference/engines/table-engines/integrations/embedded-rocksdb) y tablas [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree).

Para las tablas MergeTree, el algoritmo aplica filtros de join key directamente a la capa de almacenamiento. Esto puede ser más eficiente cuando la clave puede usar el índice de primary key de la tabla para las búsquedas; de lo contrario, realiza escaneos completos de la tabla derecha para cada bloque de la tabla izquierda.

Admite joins `INNER` y `LEFT`, y solo claves de join de igualdad de una sola columna, sin otras condiciones.

* auto

Cuando se establece en `auto`, primero se prueba `hash` join, y el algoritmo cambia dinámicamente a otro si se supera el límite de memoria.

* full\_sorting\_merge

[Algoritmo sort-merge](https://en.wikipedia.org/wiki/Sort-merge_join) con ordenación completa de las tablas antes de realizar el join.

* prefer\_partial\_merge

ClickHouse siempre intenta usar `partial_merge` join si es posible; de lo contrario, usa `hash`. *Obsoleto*, igual que `partial_merge,hash`.

* default (obsoleto)

Valor heredado; no lo use.
Igual que `direct,hash`, es decir, intenta usar direct join y hash join (en este orden).

<div id="join_any_take_last_row">
  ## join\_any\_take\_last\_row
</div>

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

Cambia el comportamiento de las operaciones `JOIN` con strictness `ANY`.

<Note>
  Esta configuración se aplica solo a las operaciones `JOIN` con tablas del motor [Join](/es/reference/engines/table-engines/special/join).
</Note>

Valores posibles:

* 0 — Si la tabla de la derecha tiene más de una fila coincidente, solo se une la primera encontrada.
* 1 — Si la tabla de la derecha tiene más de una fila coincidente, solo se une la última encontrada.

Véase también:

* [cláusula JOIN](/es/reference/statements/select/join)
* [motor de tabla Join](/es/reference/engines/table-engines/special/join)
* [join\_default\_strictness](#join_default_strictness)

<div id="join_default_strictness">
  ## join\_default\_strictness
</div>

<SettingsInfoBlock type="JoinStrictness" default_value="ALL" />

Establece la estrictez predeterminada para las [cláusulas JOIN](/es/reference/statements/select/join).

Valores posibles:

* `ALL` — Si la tabla de la derecha tiene varias filas coincidentes, ClickHouse crea un [producto cartesiano](https://en.wikipedia.org/wiki/Cartesian_product) a partir de las filas coincidentes. Este es el comportamiento normal de `JOIN` en SQL estándar.
* `ANY` — Si la tabla de la derecha tiene varias filas coincidentes, solo se une la primera que se encuentra. Si la tabla de la derecha tiene solo una fila coincidente, los resultados de `ANY` y `ALL` son los mismos.
* `ASOF` — Para unir secuencias con una coincidencia incierta.
* `Cadena vacía` — Si no se especifica `ALL` o `ANY` en la consulta, ClickHouse lanza una excepción.

<div id="join_on_disk_max_files_to_merge">
  ## join\_on\_disk\_max\_files\_to\_merge
</div>

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

Limita el número de archivos permitidos para la ordenación paralela en operaciones MergeJoin cuando se ejecutan en disco.

Cuanto mayor sea el valor de la configuración, más RAM se utiliza y menos operaciones de E/S en disco se necesitan.

Posibles valores:

* Cualquier número entero positivo a partir de 2.

<div id="join_output_by_rowlist_perkey_rows_threshold">
  ## join\_output\_by\_rowlist\_perkey\_rows\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "5"},{"label": "El límite inferior del promedio de filas por clave en la tabla de la derecha para determinar si la salida debe generarse mediante una lista de filas en hash join."}]}]} />

El límite inferior del promedio de filas por clave en la tabla de la derecha para determinar si la salida debe generarse mediante una lista de filas en hash join.

<div id="join_overflow_mode">
  ## join\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Define qué acción realiza ClickHouse cuando se alcanza alguno de los siguientes límites de join:

* [max\_bytes\_in\_join](/es/reference/settings/session-settings#max_bytes_in_join)
* [max\_rows\_in\_join](/es/reference/settings/session-settings#max_rows_in_join)

Valores posibles:

* `THROW` — ClickHouse genera una excepción e interrumpe la operación.
* `BREAK` — ClickHouse interrumpe la operación y no genera una excepción.

Valor predeterminado: `THROW`.

**Vea también**

* [cláusula JOIN](/es/reference/statements/select/join)
* [motor de tabla Join](/es/reference/engines/table-engines/special/join)

<div id="join_runtime_bloom_filter_bytes">
  ## join\_runtime\_bloom\_filter\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "524288"},{"label": "Nueva configuración"}]}]} />

Tamaño en bytes de un filtro de Bloom utilizado como filtro de tiempo de ejecución de JOIN (consulte la configuración enable\_join\_runtime\_filters).

<div id="join_runtime_bloom_filter_hash_functions">
  ## join\_runtime\_bloom\_filter\_hash\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "3"},{"label": "Nueva configuración"}]}]} />

Número de funciones hash de un bloom filter utilizado como filtro runtime para JOIN (consulte la configuración enable\_join\_runtime\_filters).

<div id="join_runtime_bloom_filter_max_ratio_of_set_bits">
  ## join\_runtime\_bloom\_filter\_max\_ratio\_of\_set\_bits
</div>

<SettingsInfoBlock type="Double" default_value="0.7" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0.7"},{"label": "Nueva configuración"}]}]} />

Si la cantidad de bits activados en un bloom filter en tiempo de ejecución supera esta proporción, el filtro se desactiva por completo para reducir la sobrecarga.

<div id="join_runtime_filter_blocks_to_skip_before_reenabling">
  ## join\_runtime\_filter\_blocks\_to\_skip\_before\_reenabling
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "30"},{"label": "Nuevo ajuste"}]}]} />

Número de bloques que se omiten antes de intentar volver a habilitar dinámicamente un filtro de runtime que se había deshabilitado previamente debido a una tasa de filtrado deficiente.

<div id="join_runtime_filter_exact_values_limit">
  ## join\_runtime\_filter\_exact\_values\_limit
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "10000"},{"label": "Nueva configuración"}]}]} />

Número máximo de elementos del runtime filter que se almacenan tal cual en un conjunto; cuando se supera este umbral, se cambia a bloom filter.

<div id="join_runtime_filter_pass_ratio_threshold_for_disabling">
  ## join\_runtime\_filter\_pass\_ratio\_threshold\_for\_disabling
</div>

<SettingsInfoBlock type="Double" default_value="0.7" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0.7"},{"label": "Nueva configuración"}]}]} />

Si la proporción entre las filas que pasan el filtro y las filas comprobadas supera este umbral, el filtro de tiempo de ejecución se considera poco eficaz y se desactiva durante los siguientes `join_runtime_filter_blocks_to_skip_before_reenabling` bloques para reducir la sobrecarga.

<div id="join_to_sort_maximum_table_rows">
  ## join\_to\_sort\_maximum\_table\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "10000"},{"label": "El número máximo de filas de la tabla derecha para determinar si se debe reordenar por clave en un left o inner join"}]}]} />

El número máximo de filas de la tabla derecha para determinar si se debe reordenar por clave en un left o inner join.

<div id="join_to_sort_minimum_perkey_rows">
  ## join\_to\_sort\_minimum\_perkey\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "40"},{"label": "El límite inferior del promedio de filas por clave en la tabla de la derecha para determinar si se debe volver a ordenar la tabla de la derecha por clave en un left o inner join. Esta configuración garantiza que la optimización no se aplique a claves dispersas de la tabla"}]}]} />

El límite inferior del promedio de filas por clave en la tabla de la derecha para determinar si se debe volver a ordenar la tabla de la derecha por clave en un left o inner join. Esta configuración garantiza que la optimización no se aplique a claves dispersas de la tabla

<div id="join_use_nulls">
  ## join\_use\_nulls
</div>

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

Establece el comportamiento de [JOIN](/es/reference/statements/select/join). Al unir tablas, pueden aparecer celdas vacías. ClickHouse las rellena de forma distinta según esta configuración.

Posibles valores:

* 0 — Las celdas vacías se rellenan con el valor predeterminado del tipo de campo correspondiente.
* 1 — `JOIN` se comporta igual que en el SQL estándar. El tipo del campo correspondiente se convierte en [Nullable](/es/reference/data-types/nullable), y las celdas vacías se rellenan con [NULL](/es/reference/syntax).

<div id="joined_block_split_single_row">
  ## joined\_block\_split\_single\_row
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite dividir en fragmentos el resultado de un hash join por las filas correspondientes a una única fila de la tabla izquierda.
Esto puede reducir el uso de memoria en el caso de una fila con muchas coincidencias en la tabla derecha, pero puede aumentar el uso de CPU.
Ten en cuenta que `max_joined_block_size_rows != 0` es obligatorio para que esta configuración surta efecto.
`max_joined_block_size_bytes`, combinado con esta configuración, ayuda a evitar un uso excesivo de memoria en casos de datos sesgados, con algunas filas grandes que tienen muchas coincidencias en la tabla derecha.

<div id="joined_subquery_requires_alias">
  ## joined\_subquery\_requires\_alias
</div>

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

Obliga a que las subconsultas incluidas en JOIN y las funciones de tabla tengan alias para que la calificación de nombres sea correcta.

<div id="kafka_disable_num_consumers_limit">
  ## kafka\_disable\_num\_consumers\_limit
</div>

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

Desactiva el límite de kafka\_num\_consumers que depende del número de núcleos de CPU disponibles.

<div id="kafka_max_wait_ms">
  ## kafka\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="5000" />

El tiempo de espera, en milisegundos, para leer mensajes de [Kafka](/es/reference/engines/table-engines/integrations/kafka) antes de reintentar.

Valores posibles:

* Entero positivo.
* 0 — Tiempo de espera infinito.

Véase también:

* [Apache Kafka](https://kafka.apache.org/)

<div id="keeper_map_strict_mode">
  ## keeper\_map\_strict\_mode
</div>

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

Aplica comprobaciones adicionales durante las operaciones en KeeperMap. Por ejemplo, lanzar una excepción al insertar una clave que ya existe

<div id="keeper_max_retries">
  ## keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "10"},{"label": "Número máximo de reintentos para operaciones generales de Keeper"}]}]} />

Número máximo de reintentos para operaciones generales de Keeper

<div id="keeper_retry_initial_backoff_ms">
  ## keeper\_retry\_initial\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "100"},{"label": "Tiempo de espera del backoff inicial para las operaciones generales de Keeper"}]}]} />

Tiempo de espera del backoff inicial para las operaciones generales de Keeper

<div id="keeper_retry_max_backoff_ms">
  ## keeper\_retry\_max\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "5000"},{"label": "Tiempo máximo de backoff para las operaciones generales de Keeper"}]}]} />

Tiempo máximo de backoff para las operaciones generales de Keeper

<div id="least_greatest_legacy_null_behavior">
  ## least\_greatest\_legacy\_null\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Si está activada, las funciones 'least' y 'greatest' devuelven NULL si uno de sus argumentos es NULL.

<div id="legacy_column_name_of_tuple_literal">
  ## legacy\_column\_name\_of\_tuple\_literal
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.7"},{"label": "0"},{"label": "Añada esta configuración solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' mientras se realiza una actualización gradual del clúster desde una versión anterior a la 21.7 a una posterior"}]}]} />

Muestra en los nombres de columna todos los nombres de los elementos de los literales Tuple grandes en lugar del hash. Esta configuración existe solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' mientras se realiza una actualización gradual del clúster desde una versión anterior a la 21.7 a una posterior.

<div id="lightweight_delete_mode">
  ## lightweight\_delete\_mode
</div>

<SettingsInfoBlock type="LightweightDeleteMode" default_value="alter_update" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "alter_update"},{"label": "Nueva configuración"}]}]} />

Modo de consulta de actualización interna que se ejecuta como parte de la eliminación ligera.

Valores posibles:

* `alter_update` - ejecuta la consulta `ALTER UPDATE`, que crea una mutación pesada.
* `lightweight_update` - ejecuta la actualización ligera si es posible; de lo contrario, ejecuta `ALTER UPDATE`.
* `lightweight_update_force` - ejecuta la actualización ligera si es posible; de lo contrario, genera una excepción.

<div id="lightweight_deletes_sync">
  ## lightweight\_deletes\_sync
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "2"},{"label": "Lo mismo que 'mutation_sync', pero solo controla la ejecución de eliminaciones ligeras"}]}]} />

Lo mismo que [`mutations_sync`](#mutations_sync), pero solo controla la ejecución de eliminaciones ligeras.

Valores posibles:

| Valor | Descripción                                                                                                                                                    |
| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0`   | Las mutaciones se ejecutan de forma asíncrona.                                                                                                                 |
| `1`   | La consulta espera a que las eliminaciones ligeras finalicen en el servidor actual.                                                                            |
| `2`   | La consulta espera a que las eliminaciones ligeras finalicen en todas las réplicas (si existen).                                                               |
| `3`   | La consulta espera solo a las réplicas activas. Solo compatible con `SharedMergeTree`. Para `ReplicatedMergeTree`, se comporta igual que `mutations_sync = 2`. |

**Véase también**

* [Sincronía de las consultas ALTER](/es/reference/statements/alter#synchronicity-of-alter-queries)
* [Mutations](/es/reference/statements/alter#mutations)

Valor predeterminado en Cloud: `1`.

<div id="limit">
  ## limit
</div>

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

Establece el número máximo de filas que se pueden obtener del resultado de la consulta. Ajusta el valor establecido por la cláusula [LIMIT](/es/reference/statements/select/limit), de modo que el límite especificado en la consulta no pueda superar el límite establecido por esta opción de configuración.

Posibles valores:

* 0 — El número de filas no está limitado.
* Entero positivo.

<div id="load_balancing">
  ## load\_balancing
</div>

<SettingsInfoBlock type="LoadBalancing" default_value="random" />

Especifica el algoritmo de selección de réplicas utilizado para el procesamiento distribuido de consultas.

ClickHouse admite los siguientes algoritmos de selección de réplicas:

* [Random](#load_balancing-random) (de forma predeterminada)
* [Nearest hostname](#load_balancing-nearest_hostname)
* [Hostname levenshtein distance](#load_balancing-hostname_levenshtein_distance)
* [In order](#load_balancing-in_order)
* [First or random](#load_balancing-first_or_random)
* [Round robin](#load_balancing-round_robin)

Véase también:

* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="load_balancing-random">
  ### Random (por defecto)
</div>

```sql theme={null}
load_balancing = random
```

Se cuenta el número de errores de cada réplica. La consulta se envía a la réplica con menos errores y, si hay varias en esa situación, a cualquiera de ellas.
Desventajas: no se tiene en cuenta la proximidad del servidor; si las réplicas tienen datos distintos, también obtendrá datos distintos.

<div id="load_balancing-nearest_hostname">
  ### Hostname más cercano
</div>

```sql theme={null}
load_balancing = nearest_hostname
```

Se cuenta el número de errores de cada réplica. Cada 5 minutos, el número de errores se divide entre 2 mediante división entera. Así, el número de errores se calcula para un periodo reciente con suavizado exponencial. Si hay una réplica con el menor número de errores (es decir, si recientemente se produjeron errores en las otras réplicas), la consulta se envía a esa réplica. Si hay varias réplicas con el mismo número mínimo de errores, la consulta se envía a la réplica cuyo hostname más se parezca al hostname del servidor en el archivo de configuración (según el número de caracteres distintos en posiciones idénticas, hasta la longitud mínima de ambos hostnames).

Por ejemplo, example01-01-1 y example01-01-2 difieren en una posición, mientras que example01-01-1 y example01-02-2 difieren en dos posiciones.
Este método puede parecer primitivo, pero no requiere datos externos sobre la topología de la red y no compara direcciones IP, lo cual sería complicado en el caso de nuestras direcciones IPv6.

Así, si hay réplicas equivalentes, se da preferencia a la que tenga el nombre más parecido.
También podemos suponer que, al enviar una consulta al mismo servidor, si no hay fallos, una consulta distribuida también irá a los mismos servidores. Por lo tanto, aunque en las réplicas haya datos distintos, la consulta devolverá prácticamente los mismos resultados.

<div id="load_balancing-hostname_levenshtein_distance">
  ### Distancia de Levenshtein del nombre de host
</div>

```sql theme={null}
load_balancing = hostname_levenshtein_distance
```

Al igual que `nearest_hostname`, pero compara el hostname según la [distancia de Levenshtein](https://en.wikipedia.org/wiki/Levenshtein_distance). Por ejemplo:

```text theme={null}
example-clickhouse-0-0 ample-clickhouse-0-0
1

example-clickhouse-0-0 example-clickhouse-1-10
2

example-clickhouse-0-0 example-clickhouse-12-0
3
```

<div id="load_balancing-in_order">
  ### In Order
</div>

```sql theme={null}
load_balancing = in_order
```

Se accede a las réplicas con el mismo número de errores en el mismo orden en que se especifican en la configuración.
Este método es apropiado cuando se sabe exactamente qué réplica es preferible.

<div id="load_balancing-first_or_random">
  ### First or Random
</div>

```sql theme={null}
load_balancing = first_or_random
```

Este algoritmo elige la primera réplica del conjunto o una réplica aleatoria si la primera no está disponible. Es eficaz en topologías de replicación cruzada, pero no resulta útil en otras configuraciones.

El algoritmo `first_or_random` resuelve el problema del algoritmo `in_order`. Con `in_order`, si una réplica deja de estar disponible, la siguiente recibe el doble de carga, mientras que las demás réplicas manejan la cantidad habitual de tráfico. Al usar el algoritmo `first_or_random`, la carga se distribuye uniformemente entre las réplicas que siguen disponibles.

Es posible definir explícitamente cuál es la primera réplica mediante la configuración `load_balancing_first_offset`. Esto ofrece un mayor control para redistribuir las cargas de trabajo de las consultas entre réplicas.

<div id="load_balancing-round_robin">
  ### Round Robin
</div>

```sql theme={null}
load_balancing = round_robin
```

Este algoritmo utiliza una política de round robin entre las réplicas con el mismo número de errores (solo se tienen en cuenta las consultas con la política `round_robin`).

<div id="load_balancing_first_offset">
  ## load\_balancing\_first\_offset
</div>

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

A qué réplica enviar preferentemente una consulta cuando se usa la estrategia de balanceo de carga FIRST\_OR\_RANDOM.

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

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

Cargar las marcas de MergeTree de forma asíncrona

Valor predeterminado en Cloud: `1`.

<div id="local_filesystem_read_method">
  ## local\_filesystem\_read\_method
</div>

<SettingsInfoBlock type="String" default_value="pread_threadpool" />

Método para leer datos del sistema de archivos local; puede ser uno de los siguientes: read, pread, mmap, io\_uring, pread\_threadpool.

El método 'io\_uring' es experimental y no funciona con Log, TinyLog, StripeLog, File, Set y Join, ni con otras tablas cuyos archivos permiten anexar datos cuando hay lecturas y escrituras concurrentes.
Si lees varios artículos sobre 'io\_uring' en Internet, no te dejes impresionar por ellos. No es un método mejor para leer archivos, salvo en el caso de una gran cantidad de solicitudes de IO pequeñas, que no es el caso de ClickHouse. No hay motivos para habilitar 'io\_uring'.

<div id="local_filesystem_read_prefetch">
  ## local\_filesystem\_read\_prefetch
</div>

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

Debe usarse la precarga al leer datos del sistema de archivos local.

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

Define cuántos segundos espera una solicitud de bloqueo antes de fallar.

El tiempo de espera de bloqueo se usa para evitar interbloqueos al ejecutar operaciones de lectura y escritura en tablas. Cuando vence el tiempo de espera y la solicitud de bloqueo falla, el servidor ClickHouse lanza la excepción "Locking attempt timed out! Possible deadlock avoided. Client should retry." con el código de error `DEADLOCK_AVOIDED`.

Valores posibles:

* Entero positivo (en segundos).
* 0 — Sin tiempo de espera de bloqueo.

<div id="log_comment">
  ## log\_comment
</div>

Especifica el valor del campo `log_comment` de la tabla [system.query\_log](/es/reference/system-tables/query_log) y el texto del comentario para el registro del servidor.

Puede utilizarse para mejorar la legibilidad de los registros del servidor. Además, ayuda a seleccionar las consultas relacionadas con la prueba en `system.query_log` después de ejecutar [clickhouse-test](/es/resources/develop-contribute/contribute/tests).

Valores posibles:

* Cualquier cadena de longitud no superior a [max\_query\_size](#max_query_size). Si se supera `max&#95;query&#95;size`, el servidor lanza una excepción.

**Ejemplo**

Consulta:

```sql theme={null}
SET log_comment = 'log_comment test', log_queries = 1;
SELECT 1;
SYSTEM FLUSH LOGS;
SELECT type, query FROM system.query_log WHERE log_comment = 'log_comment test' AND event_date >= yesterday() ORDER BY event_time DESC LIMIT 2;
```

Resultado:

```text theme={null}
┌─type────────┬─query─────┐
│ QueryStart  │ SELECT 1; │
│ QueryFinish │ SELECT 1; │
└─────────────┴───────────┘
```

<div id="log_formatted_queries">
  ## log\_formatted\_queries
</div>

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

Permite registrar consultas con formato en la tabla del sistema [system.query\_log](/es/reference/system-tables/query_log) (rellena la columna `formatted_query` de [system.query\_log](/es/reference/system-tables/query_log)).

Valores posibles:

* 0 — Las consultas con formato no se registran en la tabla del sistema.
* 1 — Las consultas con formato se registran en la tabla del sistema.

<div id="log_processors_profiles">
  ## log\_processors\_profiles
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Habilitado de forma predeterminada"}]}]} />

Escribe en la tabla `system.processors_profile_log` el tiempo que el procesador dedicó a la ejecución o a esperar datos.

Véase también:

* [`system.processors_profile_log`](/es/reference/system-tables/processors_profile_log)
* [`EXPLAIN PIPELINE`](/es/reference/statements/explain#explain-pipeline)

<div id="log_profile_events">
  ## log\_profile\_events
</div>

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

Registra estadísticas de rendimiento de consultas en query\_log, query\_thread\_log y query\_views\_log.

<div id="log_queries">
  ## log\_queries
</div>

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

Habilita el registro de consultas.

Las consultas enviadas a ClickHouse con esta configuración se registran según las reglas del parámetro de configuración del servidor [query\_log](/es/reference/settings/server-settings/settings#query_log).

Ejemplo:

```text theme={null}
log_queries=1
```

<div id="log_queries_cut_to_length">
  ## log\_queries\_cut\_to\_length
</div>

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

Si la longitud de la consulta supera un umbral especificado (en bytes), la consulta se recorta al escribirla en el registro de consultas. También se limita la longitud de la consulta impresa en el registro de texto normal.

<div id="log_queries_min_query_duration_ms">
  ## log\_queries\_min\_query\_duration\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="0" />

Si está habilitado (distinto de cero), no se registrarán las consultas cuya duración sea inferior al valor de esta configuración (puede considerarlo como un `long_query_time` para [MySQL Slow Query Log](https://dev.mysql.com/doc/refman/5.7/slow-query-log.html)), lo que básicamente significa que no las encontrará en las siguientes tablas:

* `system.query_log`
* `system.query_thread_log`

Solo se registrarán en el log las consultas con el siguiente tipo:

* `QUERY_FINISH`

* `EXCEPTION_WHILE_PROCESSING`

* Tipo: milisegundos

* Valor predeterminado: 0 (cualquier consulta)

<div id="log_queries_min_type">
  ## log\_queries\_min\_type
</div>

<SettingsInfoBlock type="LogQueriesType" default_value="QUERY_START" />

Tipo mínimo que se registrará en `query_log`.

Valores posibles:

* `QUERY_START` (`=1`)
* `QUERY_FINISH` (`=2`)
* `EXCEPTION_BEFORE_START` (`=3`)
* `EXCEPTION_WHILE_PROCESSING` (`=4`)

Puede usarse para limitar qué eventos se escribirán en `query_log`; por ejemplo, si solo le interesan los errores, puede usar `EXCEPTION_WHILE_PROCESSING`:

```text theme={null}
log_queries_min_type='EXCEPTION_WHILE_PROCESSING'
```

<div id="log_queries_probability">
  ## log\_queries\_probability
</div>

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

Permite que un usuario escriba en las tablas del sistema [query\_log](/es/reference/system-tables/query_log), [query\_thread\_log](/es/reference/system-tables/query_thread_log) y [query\_views\_log](/es/reference/system-tables/query_views_log) solo una muestra de consultas seleccionadas aleatoriamente con la probabilidad especificada. Esto ayuda a reducir la carga cuando hay un gran volumen de consultas por segundo.

Valores posibles:

* 0 — Las consultas no se registran en las tablas del sistema.
* Número de coma flotante positivo en el intervalo \[0..1]. Por ejemplo, si el valor de la configuración es `0.5`, aproximadamente la mitad de las consultas se registran en las tablas del sistema.
* 1 — Todas las consultas se registran en las tablas del sistema.

<div id="log_query_settings">
  ## log\_query\_settings
</div>

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

Registra la configuración de la consulta en query\_log y en el registro de spans de OpenTelemetry.

<div id="log_query_threads">
  ## log\_query\_threads
</div>

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

Configura el registro de los hilos de consulta.

Los hilos de consulta se registran en la tabla [system.query\_thread\_log](/es/reference/system-tables/query_thread_log). Esta configuración solo surte efecto cuando [log\_queries](#log_queries) es true. Los hilos de las consultas ejecutadas por ClickHouse con esta configuración se registran según las reglas del parámetro de configuración del servidor [query\_thread\_log](/es/reference/settings/server-settings/settings#query_thread_log).

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

**Ejemplo**

```text theme={null}
log_query_threads=1
```

<div id="log_query_views">
  ## log\_query\_views
</div>

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

Configura el registro de las vistas de consulta.

Cuando una consulta ejecutada por ClickHouse con este ajuste habilitado tiene vistas asociadas (materializadas o live views), estas se registran en el parámetro de configuración del servidor [query\_views\_log](/es/reference/settings/server-settings/settings#query_views_log).

Ejemplo:

```text theme={null}
log_query_views=1
```

<div id="low_cardinality_allow_in_native_format">
  ## low\_cardinality\_allow\_in\_native\_format
</div>

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

Permite o restringe el uso del tipo de dato [LowCardinality](/es/reference/data-types/lowcardinality) con el formato [Native](/es/reference/formats/Native).

Si el uso de `LowCardinality` está restringido, ClickHouse server convierte las columnas `LowCardinality` en columnas normales para las consultas `SELECT` y las columnas normales en columnas `LowCardinality` para las consultas `INSERT`.

Esta configuración es necesaria principalmente para clientes de terceros que no admiten el tipo de dato `LowCardinality`.

Valores posibles:

* 1 — El uso de `LowCardinality` no está restringido.
* 0 — El uso de `LowCardinality` está restringido.

<div id="low_cardinality_max_dictionary_size">
  ## low\_cardinality\_max\_dictionary\_size
</div>

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

Establece el tamaño máximo, en filas, de un diccionario global compartido para el tipo de datos [LowCardinality](/es/reference/data-types/lowcardinality) que puede escribirse en el sistema de archivos de almacenamiento. Esta configuración evita problemas de RAM en caso de que el diccionario crezca sin límite. ClickHouse escribe por el método habitual todos los datos que no pueden codificarse debido a la limitación del tamaño máximo del diccionario.

Valores posibles:

* Cualquier entero positivo.

<div id="low_cardinality_use_single_dictionary_for_part">
  ## low\_cardinality\_use\_single\_dictionary\_for\_part
</div>

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

Activa o desactiva el uso de un único diccionario para la parte de datos.

De forma predeterminada, el servidor de ClickHouse supervisa el tamaño de los diccionarios y, si un diccionario supera el límite, el servidor comienza a escribir el siguiente. Para impedir la creación de varios diccionarios, establezca `low_cardinality_use_single_dictionary_for_part = 1`.

Valores posibles:

* 1 — Se prohíbe crear varios diccionarios para la parte de datos.
* 0 — No se prohíbe crear varios diccionarios para la parte de datos.

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "Nueva configuración"},{"label": "New setting."}]}]} />

Cuando se utiliza el mecanismo de priorización de consultas (consulte la configuración `priority`), las consultas de baja prioridad esperan a que terminen las consultas de mayor prioridad. Esta configuración especifica el tiempo de espera.

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Nueva configuración experimental."}]}]} />

Crea el plan de consulta distribuida.

<div id="materialize_skip_indexes_on_insert">
  ## materialize\_skip\_indexes\_on\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Se añadió una nueva configuración para permitir deshabilitar la materialización de índices de salto en INSERT"}]}]} />

Indica si las operaciones INSERT crean y almacenan índices de salto. Si está deshabilitado, los índices de salto solo se crearán y almacenarán [durante las fusiones](/es/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) o mediante [MATERIALIZE INDEX](/es/reference/statements/alter/skipping-index#materialize-index) explícito.

Véase también [exclude\_materialize\_skip\_indexes\_on\_insert](#exclude_materialize_skip_indexes_on_insert).

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Desactiva de forma predeterminada la creación de estadísticas en INSERT; en su lugar, depende de los merges"}]}, {"id": "row-2","items": [{"label": "24.6"},{"label": "1"},{"label": "Se añadió una nueva configuración para permitir desactivar la materialización de estadísticas en INSERT"}]}]} />

Indica si los INSERT generan e insertan estadísticas. Si está desactivado, las estadísticas se crearán y almacenarán durante los merges o mediante MATERIALIZE STATISTICS explícito

<div id="materialize_ttl_after_modify">
  ## materialize\_ttl\_after\_modify
</div>

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

Aplica TTL a los datos antiguos después de la consulta ALTER MODIFY TTL

<div id="materialized_views_ignore_errors">
  ## materialized\_views\_ignore\_errors
</div>

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

Permite ignorar los errores de MATERIALIZED VIEW y enviar el bloque original a la tabla independientemente de las MV

<div id="materialized_views_squash_parallel_inserts">
  ## materialized\_views\_squash\_parallel\_inserts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "Se añadió esta configuración para preservar el comportamiento anterior si es necesario."}]}]} />

Combina las inserciones de una única consulta INSERT en la tabla de destino de las vistas materializadas a partir de inserciones paralelas para reducir la cantidad de partes generadas.
Si se establece en false y `parallel_view_processing` está habilitado, la consulta INSERT generará una parte en la tabla de destino por cada `max_insert_thread`.

<div id="max_analyze_depth">
  ## max\_analyze\_depth
</div>

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

Número máximo de análisis que realiza el intérprete.

<div id="max_ast_depth">
  ## max\_ast\_depth
</div>

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

La profundidad máxima de anidamiento del árbol sintáctico de una consulta. Si se supera, se lanza una excepción.

<Note>
  En este momento, no se comprueba durante el análisis sintáctico, sino solo después de analizar la consulta.
  Esto significa que durante el análisis sintáctico se puede crear un árbol sintáctico demasiado profundo,
  pero la consulta fallará.
</Note>

<div id="max_ast_elements">
  ## max\_ast\_elements
</div>

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

El número máximo de elementos en el árbol sintáctico de una consulta. Si se supera, se lanza una excepción.

<Note>
  Actualmente, no se comprueba durante el análisis, sino solo después de analizar la consulta.
  Esto significa que durante el análisis puede crearse un árbol sintáctico demasiado profundo,
  pero la consulta fallará.
</Note>

<div id="max_autoincrement_series">
  ## max\_autoincrement\_series
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

El límite de la cantidad de series creadas por la función `generateSerialID`.

Como cada serie representa un nodo en Keeper, se recomienda no tener más de un par de millones.

<div id="max_backup_bandwidth">
  ## max\_backup\_bandwidth
</div>

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

La velocidad máxima de lectura, en bytes por segundo, para una copia de seguridad concreta en el server. Cero significa que no hay límite.

<div id="max_block_size">
  ## max\_block\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="65409" />

En ClickHouse, los datos se procesan en bloques, que son conjuntos de partes de columnas. Los ciclos internos de procesamiento de un solo bloque son eficientes, pero procesar cada bloque conlleva costos perceptibles.

La configuración `max_block_size` indica el número máximo recomendado de filas que se deben incluir en un solo bloque al cargar datos desde tablas. No siempre se cargan de la tabla bloques del tamaño de `max_block_size`: si ClickHouse determina que es necesario recuperar menos datos, se procesa un bloque más pequeño.

El tamaño del bloque no debe ser demasiado pequeño, para evitar costos perceptibles al procesar cada bloque. Tampoco debe ser demasiado grande, para garantizar que las consultas con una cláusula LIMIT se ejecuten rápidamente después de procesar el primer bloque. Al configurar `max_block_size`, el objetivo debe ser evitar consumir demasiada memoria al extraer una gran cantidad de columnas en varios hilos y preservar al menos cierta localidad de caché.

<div id="max_bytes_before_external_group_by">
  ## max\_bytes\_before\_external\_group\_by
</div>

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

Valor predeterminado de Cloud: la mitad de la memoria por réplica.

Habilita o deshabilita la ejecución de cláusulas `GROUP BY` en memoria externa.
(Consulte [GROUP BY en memoria externa](/es/reference/statements/select/group-by#group-by-in-external-memory))

Valores posibles:

* Volumen máximo de RAM (en bytes) que puede usar una sola operación [GROUP BY](/es/reference/statements/select/group-by).
* `0` — `GROUP BY` en memoria externa deshabilitado.

<Note>
  Si el uso de memoria durante las operaciones `GROUP BY` supera este umbral en bytes,
  active el modo de 'agregación externa' (volcado de datos a disco).

  El valor recomendado es la mitad de la memoria disponible del sistema.
</Note>

<div id="max_bytes_before_external_join">
  ## max\_bytes\_before\_external\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para controlar el volcado automático a disco de los hash joins. Un valor distinto de cero habilita este volcado y establece el umbral de bytes."}]}]} />

Si se establece en un valor distinto de cero y `join_algorithm` es `hash`, `parallel_hash`, `default` o `auto`, el hash join se convertirá automáticamente en grace hash join para permitir el volcado a disco cuando los datos del lado derecho superen esta cantidad de bytes. Cuando se establece en 0 (valor predeterminado), este umbral absoluto de bytes se desactiva, pero el volcado automático aún puede producirse mediante `max_bytes_ratio_before_external_join` (cuyo valor predeterminado es `0.5`); establezca ambos en `0` para desactivar por completo el volcado automático. Esto impide la optimización de lectura en orden mediante join.

<div id="max_bytes_before_external_sort">
  ## max\_bytes\_before\_external\_sort
</div>

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

Valor predeterminado de Cloud: la mitad de la memoria por réplica.

Habilita o deshabilita la ejecución de cláusulas `ORDER BY` en memoria externa. Consulte [Detalles de implementación de ORDER BY](/es/reference/statements/select/order-by#implementation-details)
Si el uso de memoria durante una operación ORDER BY supera este umbral en bytes, se activa el modo de «ordenación externa» (volcado de datos a disco).

Valores posibles:

* Volumen máximo de RAM (en bytes) que puede usar una única operación [ORDER BY](/es/reference/statements/select/order-by).
  El valor recomendado es la mitad de la memoria del sistema disponible
* `0` — `ORDER BY` en memoria externa desactivado.

<div id="max_bytes_before_remerge_sort">
  ## max\_bytes\_before\_remerge\_sort
</div>

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

En el caso de ORDER BY con LIMIT, cuando el uso de memoria supera el umbral especificado, se realizan pasos adicionales de fusión de bloques antes de la fusión final para conservar solo las primeras filas de LIMIT.

<div id="max_bytes_for_lazy_final">
  ## max\_bytes\_for\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "256000000"},{"label": "Nueva configuración para el número máximo de bytes del conjunto usado en la optimización lazy de FINAL"}]}]} />

Número máximo de bytes del conjunto usado en la optimización lazy de FINAL. Si se supera, se recurre al FINAL normal.

<div id="max_bytes_in_distinct">
  ## max\_bytes\_in\_distinct
</div>

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

La cantidad máxima de bytes del estado (en bytes sin comprimir) en memoria que
utiliza una tabla hash al usar DISTINCT.

<div id="max_bytes_in_join">
  ## max\_bytes\_in\_join
</div>

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

El tamaño máximo, en número de bytes, de la tabla hash utilizada para unir tablas.

Esta configuración se aplica a las operaciones [SELECT ... JOIN](/es/reference/statements/select/join)
y al [Join table engine](/es/reference/engines/table-engines/special/join).

Si la consulta contiene joins, ClickHouse comprueba esta configuración para cada resultado intermedio.

Cuando se alcanza el límite, ClickHouse puede realizar distintas acciones. Use
la configuración [join\_overflow\_mode](/es/reference/settings/session-settings#join_overflow_mode) para elegir la acción.

Valores posibles:

* Entero positivo.
* 0 — El control de memoria está desactivado.

<div id="max_bytes_in_set">
  ## max\_bytes\_in\_set
</div>

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

El número máximo de bytes (de datos sin comprimir) utilizado por un conjunto en la cláusula IN
creado a partir de una subconsulta.

<div id="max_bytes_ratio_before_external_group_by">
  ## max\_bytes\_ratio\_before\_external\_group\_by
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0.5"},{"label": "Habilitar el vertido automático a disco de forma predeterminada."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

La proporción de la memoria disponible que puede usarse para `GROUP BY`. Una vez alcanzado este valor,
se utiliza memoria externa para la agregación.

Por ejemplo, si se establece en `0.6`, `GROUP BY` permitirá usar el 60% de la memoria disponible
(para servidor/usuario/fusiones) al inicio de la ejecución; a partir de ese momento,
comenzará a usar agregación externa.

<div id="max_bytes_ratio_before_external_join">
  ## max\_bytes\_ratio\_before\_external\_join
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0.5"},{"label": "Nueva configuración: proporción de la memoria disponible utilizada como umbral de volcado a disco para los hash joins. Está habilitada de forma predeterminada en `0.5`, en consonancia con `max_bytes_ratio_before_external_group_by` y `max_bytes_ratio_before_external_sort`. Se combina con el valor absoluto `max_bytes_before_external_join` (se aplica el menor de los dos)."}]}]} />

La proporción de memoria disponible permitida para `JOIN`. Una vez alcanzada, el hash join se convertirá en grace hash join para volcar al disco los datos del lado derecho.

Por ejemplo, si se establece en `0.6`, `JOIN` permitirá usar el `60%` de la memoria disponible (para server/user/merges) para la hash table del lado derecho al comienzo de la ejecución; después de eso, comenzará el volcado a disco.

Si se establecen tanto `max_bytes_before_external_join` como `max_bytes_ratio_before_external_join`, se utiliza el umbral resultante menor. Si la proporción es `0`, solo se aplica la configuración absoluta.

Solo tiene efecto cuando `join_algorithm` es `hash`, `parallel_hash`, `default` o `auto` y hay una ruta de datos temporal configurada.

<div id="max_bytes_ratio_before_external_sort">
  ## max\_bytes\_ratio\_before\_external\_sort
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0.5"},{"label": "Habilita el volcado automático a disco de forma predeterminada."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

La proporción de memoria disponible que puede usar `ORDER BY`. Una vez alcanzado este valor, se utiliza la ordenación externa.

Por ejemplo, si se establece en `0.6`, `ORDER BY` permitirá usar el `60%` de la memoria disponible (para server/user/merges) al inicio de la ejecución; después, empezará a usar la ordenación externa.

Tenga en cuenta que `max_bytes_before_external_sort` sigue respetándose; el volcado a disco solo se realizará si el bloque de ordenación es mayor que `max_bytes_before_external_sort`.

<div id="max_bytes_to_read">
  ## max\_bytes\_to\_read
</div>

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

La cantidad máxima de bytes (de datos sin comprimir) que se pueden leer de una tabla al ejecutar una consulta.
La restricción se comprueba para cada fragmento de datos procesado, se aplica solo a la
expresión de tabla más interna y, al leer desde un servidor remoto, solo se comprueba en
el servidor remoto.

<div id="max_bytes_to_read_leaf">
  ## max\_bytes\_to\_read\_leaf
</div>

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

La cantidad máxima de bytes (de datos sin comprimir) que se puede leer desde una
tabla local en un nodo hoja al ejecutar una consulta distribuida. Aunque las consultas distribuidas
pueden emitir varias subconsultas a cada segmento (hoja), este límite
solo se comprobará en la fase de lectura en los nodos hoja y se ignorará en la
fase de fusión de resultados en el nodo raíz.

Por ejemplo, un clúster consta de 2 segmentos y cada segmento contiene una tabla con
100 bytes de datos. Una consulta distribuida que deba leer todos los datos
de ambas tablas con la configuración `max_bytes_to_read=150` fallará, ya que en total
serán 200 bytes. Una consulta con `max_bytes_to_read_leaf=150` se ejecutará correctamente, ya que
los nodos hoja leerán como máximo 100 bytes.

La restricción se comprueba para cada fragmento de datos procesado.

<Note>
  Esta configuración es inestable con `prefer_localhost_replica=1`.
</Note>

<div id="max_bytes_to_sort">
  ## max\_bytes\_to\_sort
</div>

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

El número máximo de bytes antes de ordenar. Si para la operación ORDER BY
deben procesarse más bytes sin comprimir que la cantidad especificada, el comportamiento
lo determinará `sort_overflow_mode`, que de forma predeterminada está establecido en `throw`.

<div id="max_bytes_to_transfer">
  ## max\_bytes\_to\_transfer
</div>

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

El número máximo de bytes (datos sin comprimir) que pueden pasarse a un
servidor remoto o guardarse en una tabla temporal cuando se ejecuta la sección GLOBAL IN/JOIN.

<div id="max_columns_to_read">
  ## max\_columns\_to\_read
</div>

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

El número máximo de columnas que se pueden leer de una tabla en una sola consulta.
Si una consulta requiere leer un número de columnas superior al especificado, se
genera una excepción.

<Tip>
  Esta configuración es útil para evitar consultas demasiado complejas.
</Tip>

El valor `0` significa que no hay límite.

<div id="max_compress_block_size">
  ## max\_compress\_block\_size
</div>

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

El tamaño máximo de los bloques de datos sin comprimir antes de comprimirlos para escribirlos en una tabla. El valor predeterminado es 1.048.576 (1 MiB). Especificar un tamaño de bloque menor suele dar como resultado un ratio de compresión ligeramente inferior; la velocidad de compresión y descompresión aumenta ligeramente debido a la localidad de la caché, y se reduce el consumo de memoria.

<Note>
  Esta es una configuración de nivel experto, y no debería cambiarla si está empezando con ClickHouse.
</Note>

No confunda los bloques de compresión (un fragmento de memoria compuesto por bytes) con los bloques de procesamiento de consultas (un conjunto de filas de una tabla).

<div id="max_concurrent_queries_for_all_users">
  ## max\_concurrent\_queries\_for\_all\_users
</div>

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

Lanza una excepción si el valor de esta configuración es menor o igual que el número actual de consultas que se procesan simultáneamente.

Ejemplo: `max_concurrent_queries_for_all_users` se puede establecer en 99 para todos los usuarios, y el administrador de la base de datos puede establecerlo en 100 para sí mismo a fin de ejecutar consultas de investigación incluso cuando el servidor está sobrecargado.

Modificar la configuración para una consulta o un usuario no afecta a las demás consultas.

Valores posibles:

* Entero positivo.
* 0 — Sin límite.

**Ejemplo**

```xml theme={null}
<max_concurrent_queries_for_all_users>99</max_concurrent_queries_for_all_users>
```

**Véase también**

* [max\_concurrent\_queries](/es/reference/settings/server-settings/settings#max_concurrent_queries)

Valor predeterminado en Cloud: `1000`.

<div id="max_concurrent_queries_for_user">
  ## max\_concurrent\_queries\_for\_user
</div>

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

El número máximo de consultas que se pueden procesar simultáneamente por usuario.

Valores posibles:

* Entero positivo.
* 0 — Sin límite.

**Ejemplo**

```xml theme={null}
<max_concurrent_queries_for_user>5</max_concurrent_queries_for_user>
```

<div id="max_consume_snapshots">
  ## max\_consume\_snapshots
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Número máximo de instantáneas de Paimon que se pueden consumir en cada lectura incremental. 0 significa que no hay límite.

<div id="max_distributed_connections">
  ## max\_distributed\_connections
</div>

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

El número máximo de conexiones simultáneas con servidores remotos para el procesamiento distribuido de una única consulta sobre una única tabla Distributed. Recomendamos establecer un valor no inferior al número de servidores del clúster.

Los siguientes parámetros solo se usan al crear tablas Distributed (y al iniciar un servidor), por lo que no tiene sentido cambiarlos en tiempo de ejecución.

<div id="max_distributed_depth">
  ## max\_distributed\_depth
</div>

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

Limita la profundidad máxima de las consultas recursivas para las tablas [Distributed](/es/reference/engines/table-engines/special/distributed).

Si se supera este valor, el servidor lanza una excepción.

Valores posibles:

* Entero positivo.
* 0 — Profundidad ilimitada.

<div id="max_download_buffer_size">
  ## max\_download\_buffer\_size
</div>

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

El tamaño máximo del búfer para la descarga en paralelo (p. ej., para URL engine) en cada thread.

<div id="max_download_threads">
  ## max\_download\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="4" />

El número máximo de hilos para la descarga de datos (p. ej., para URL engine).

<div id="max_estimated_execution_time">
  ## max\_estimated\_execution\_time
</div>

<SettingsInfoBlock type="Segundos" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Se separan max_execution_time y max_estimated_execution_time"}]}]} />

Tiempo máximo estimado de ejecución de la consulta, en segundos. Se comprueba en cada bloque de datos
cuando vence [`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed).

<div id="max_execution_speed">
  ## max\_execution\_speed
</div>

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

El número máximo de filas procesadas por segundo. Se comprueba en cada bloque de datos cuando
[`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed)
vence. Si la velocidad de ejecución es demasiado alta, se reducirá.

<div id="max_execution_speed_bytes">
  ## max\_execution\_speed\_bytes
</div>

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

El número máximo de bytes de ejecución por segundo. Se comprueba en cada bloque de datos cuando
[`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed)
expira. Si la velocidad de ejecución es alta, se reducirá.

<div id="max_execution_time">
  ## max\_execution\_time
</div>

<SettingsInfoBlock type="Segundos" default_value="0" />

El tiempo máximo de ejecución de la consulta, en segundos.

El parámetro `max_execution_time` puede ser algo difícil de entender.
Funciona a partir de una interpolación relativa a la velocidad actual de ejecución de la consulta
(este comportamiento está controlado por [`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed)).

ClickHouse interrumpirá una consulta si el tiempo de ejecución estimado supera el
`max_execution_time` especificado. De forma predeterminada, `timeout_before_checking_execution_speed`
está establecido en 10 segundos. Esto significa que, tras 10 segundos de ejecución de la consulta, ClickHouse
comenzará a estimar el tiempo total de ejecución. Si, por ejemplo, `max_execution_time`
está establecido en 3600 segundos (1 hora), ClickHouse finalizará la consulta si el tiempo estimado
supera este límite de 3600 segundos. Si establece `timeout_before_checking_execution_speed`
en 0, ClickHouse usará el tiempo de reloj como base para `max_execution_time`.

Si el tiempo de ejecución de la consulta supera el número de segundos especificado, el comportamiento
vendrá determinado por `timeout_overflow_mode`, que de forma predeterminada está establecido en `throw`.

<Note>
  El tiempo de espera se comprueba y la consulta solo puede detenerse en puntos determinados durante el procesamiento de datos.
  Actualmente no puede detenerse durante la fusión de estados de agregación ni durante el análisis de la consulta,
  y el tiempo real de ejecución será mayor que el valor de esta configuración.
</Note>

<div id="max_execution_time_leaf">
  ## max\_execution\_time\_leaf
</div>

<SettingsInfoBlock type="Segundos" default_value="0" />

Semánticamente es similar a [`max_execution_time`](#max_execution_time), pero solo
se aplica a los nodos hoja en consultas distribuidas o remotas.

Por ejemplo, si queremos limitar a `10s` el tiempo de ejecución en un nodo hoja, pero
no establecer ningún límite en el nodo inicial, en lugar de incluir `max_execution_time` en la
configuración de la subconsulta anidada:

```sql theme={null}
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));
```

Podemos usar `max_execution_time_leaf` como parámetro de configuración de la consulta:

```sql theme={null}
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;
```

<div id="max_expanded_ast_elements">
  ## max\_expanded\_ast\_elements
</div>

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

Tamaño máximo del árbol de sintaxis de la consulta, medido en número de nodos, tras expandir los alias y el asterisco.

<div id="max_fetch_partition_retries_count">
  ## max\_fetch\_partition\_retries\_count
</div>

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

Número de reintentos al obtener una partición desde otro host.

<div id="max_final_threads">
  ## max\_final\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

Establece el número máximo de hilos paralelos para la fase de lectura de datos de la consulta `SELECT` con el modificador [FINAL](/es/reference/statements/select/from#final-modifier).

Valores posibles:

* Entero positivo.
* 0 o 1 — Deshabilitado. Las consultas `SELECT` se ejecutan en un solo hilo.

<div id="max_http_get_redirects">
  ## max\_http\_get\_redirects
</div>

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

Número máximo de saltos de redirección HTTP GET permitidos. Garantiza medidas de seguridad adicionales para evitar que un servidor malicioso redirija sus solicitudes a servicios inesperados.\n\nEsto ocurre cuando un servidor externo redirige a otra dirección, pero esa dirección parece pertenecer a la infraestructura interna de la empresa y, al enviar una solicitud HTTP a un servidor interno, podría solicitar una API interna desde la red interna, eludir la autenticación o incluso consultar otros servicios, como Redis o Memcached. Cuando no tiene una infraestructura interna (incluido algo que se esté ejecutando en su localhost), o si confía en el servidor, es seguro permitir redirecciones. Sin embargo, tenga en cuenta que, si la URL usa HTTP en lugar de HTTPS, tendrá que confiar no solo en el servidor remoto, sino también en su ISP y en cada una de las redes intermedias.

Valor predeterminado de Cloud: `10`.

<div id="max_hyperscan_regexp_length">
  ## max\_hyperscan\_regexp\_length
</div>

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

Define la longitud máxima de cada expresión regular en las [funciones hyperscan multi-match](/es/reference/functions/regular-functions/string-search-functions#multiMatchAny).

Valores posibles:

* Entero positivo.
* 0 - La longitud no está limitada.

**Ejemplo**

Consulta:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bcd','c','d']) SETTINGS max_hyperscan_regexp_length = 3;
```

Resultado:

```text theme={null}
┌─multiMatchAny('abcd', ['ab', 'bcd', 'c', 'd'])─┐
│                                              1 │
└────────────────────────────────────────────────┘
```

Consulta:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bcd','c','d']) SETTINGS max_hyperscan_regexp_length = 2;
```

Resultado:

```text theme={null}
Exception: Regexp length too large.
```

**Véase también**

* [max\_hyperscan\_regexp\_total\_length](#max_hyperscan_regexp_total_length)

<div id="max_hyperscan_regexp_total_length">
  ## max\_hyperscan\_regexp\_total\_length
</div>

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

Establece la longitud total máxima de todas las expresiones regulares en cada [función hyperscan multi-match](/es/reference/functions/regular-functions/string-search-functions#multiMatchAny).

Valores posibles:

* Entero positivo.
* 0: la longitud no está limitada.

**Ejemplo**

Consulta:

```sql theme={null}
SELECT multiMatchAny('abcd', ['a','b','c','d']) SETTINGS max_hyperscan_regexp_total_length = 5;
```

Resultado:

```text theme={null}
┌─multiMatchAny('abcd', ['a', 'b', 'c', 'd'])─┐
│                                           1 │
└─────────────────────────────────────────────┘
```

Consulta:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bc','c','d']) SETTINGS max_hyperscan_regexp_total_length = 5;
```

Resultado:

```text theme={null}
Exception: Total regexp lengths too large.
```

**Véase también**

* [max\_hyperscan\_regexp\_length](#max_hyperscan_regexp_length)

<div id="max_insert_block_size">
  ## max\_insert\_block\_size
</div>

**Alias**: `max_insert_block_size_rows`

<SettingsInfoBlock type="NonZeroUInt64" default_value="1048449" />

El tamaño máximo de los bloques (medido en número de filas) que se forman para insertar en una tabla.

Esta configuración controla la formación de bloques en dos contextos:

1. Análisis de formatos: Cuando el servidor analiza formatos de entrada basados en filas (CSV, TSV, JSONEachRow, etc.) desde cualquier interfaz (HTTP, clickhouse-client con datos en línea, gRPC, PostgreSQL wire protocol), los bloques se emiten cuando:

   * Se alcanzan tanto min\_insert\_block\_size\_rows AND min\_insert\_block\_size\_bytes, OR
   * Se alcanza cualquiera de max\_insert\_block\_size\_rows OR max\_insert\_block\_size\_bytes

   Nota: Al usar clickhouse-client o clickhouse-local para leer desde un archivo, el propio cliente analiza los datos y esta configuración se aplica del lado del cliente.

2. Operaciones INSERT: Durante las consultas INSERT y cuando los datos fluyen a través de vistas materializadas, el comportamiento de esta configuración depende de `use_strict_insert_block_limits`:

   * Cuando está habilitado: Los bloques se emiten cuando:
     * Umbrales mínimos (AND): Se alcanzan tanto min\_insert\_block\_size\_rows AND min\_insert\_block\_size\_bytes
     * Umbrales máximos (OR): Se alcanza cualquiera de max\_insert\_block\_size\_rows OR max\_insert\_block\_size\_bytes

   * Cuando está deshabilitado: Los bloques se emiten cuando se alcanza min\_insert\_block\_size\_rows OR min\_insert\_block\_size\_bytes. Los ajustes max\_insert\_block\_size no se aplican.

Valores posibles:

* Entero positivo.

<div id="max_insert_block_size_bytes">
  ## max\_insert\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Nueva configuración que permite controlar el tamaño de los bloques en bytes durante el análisis de datos en Row Input Format."}]}]} />

El tamaño máximo de los bloques (en bytes) que se deben formar para insertar en una tabla.

Esta configuración funciona junto con max\_insert\_block\_size\_rows y controla la formación de bloques en el mismo contexto. Consulte max\_insert\_block\_size\_rows para obtener información detallada sobre cuándo y cómo se aplican estas configuraciones.

Valores posibles:

* Entero positivo.
* 0 — la configuración no interviene en la formación de bloques.

<div id="max_insert_delayed_streams_for_parallel_write">
  ## max\_insert\_delayed\_streams\_for\_parallel\_write
</div>

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

El número máximo de streams (columnas) para retrasar el volcado final de la parte. Valor predeterminado: automático (100 si el almacenamiento subyacente admite escritura en paralelo, por ejemplo, S3, y deshabilitado en caso contrario)

Valor predeterminado de Cloud: `50`.

<div id="max_insert_threads">
  ## max\_insert\_threads
</div>

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

El número máximo de hilos para ejecutar la consulta `INSERT SELECT`.

Valores posibles:

* 0 (o 1): `INSERT SELECT` no se ejecuta en paralelo.
* Entero positivo. Mayor que 1.

Valor predeterminado en Cloud:

* `1` para nodos con 8 GiB de memoria
* `2` para nodos con 16 GiB de memoria
* `4` para nodos más grandes

`INSERT SELECT` en paralelo solo surte efecto si la parte `SELECT` se ejecuta en paralelo; consulta la configuración [`max_threads`](#max_threads).
Los valores más altos darán lugar a un mayor uso de memoria.

<div id="max_insert_threads_min_free_memory_per_thread">
  ## max\_insert\_threads\_min\_free\_memory\_per\_thread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "4294967296"},{"label": "Nueva configuración para limitar el número de hilos de inserción en función de la memoria libre disponible"}]}]} />

Igual que `max_threads_min_free_memory_per_thread`, pero aplicado a `max_insert_threads` en vez de a `max_threads`. El valor predeterminado es mayor porque las canalizaciones de inserción suelen mantener búferes por hilo más grandes (partes de MergeTree, bloques de compresión) que las canalizaciones de lectura.

Si la cantidad de memoria libre es inferior a `max_insert_threads` multiplicado por este valor, `max_insert_threads` se reduce para ajustarse, hasta un mínimo de `1`.

Establézcalo en `0` para desactivar este límite.

<div id="max_joined_block_size_bytes">
  ## max\_joined\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "4194304"},{"label": "Nueva opción"}]}]} />

Tamaño máximo del bloque, en bytes, para el resultado de JOIN (si el algoritmo de JOIN lo admite). 0 significa ilimitado.

<div id="max_joined_block_size_rows">
  ## max\_joined\_block\_size\_rows
</div>

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

Tamaño máximo del bloque para el resultado del JOIN (si el algoritmo de JOIN lo admite). 0 significa que no hay límite.

<div id="max_limit_for_vector_search_queries">
  ## max\_limit\_for\_vector\_search\_queries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1000"},{"label": "Nueva opción"}]}]} />

Las consultas SELECT con un LIMIT superior a este ajuste no pueden usar índices de similitud vectorial. Ayuda a evitar desbordamientos de memoria en los índices de similitud vectorial.

<div id="max_local_read_bandwidth">
  ## max\_local\_read\_bandwidth
</div>

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

La velocidad máxima de lectura local en bytes por segundo.

<div id="max_local_write_bandwidth">
  ## max\_local\_write\_bandwidth
</div>

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

La velocidad máxima de escritura local en bytes por segundo.

<div id="max_memory_usage">
  ## max\_memory\_usage
</div>

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

Valor predeterminado de Cloud: depende de la cantidad de RAM en la réplica.

La cantidad máxima de RAM que se puede usar para ejecutar una consulta en un único servidor.
Un valor de `0` significa que no hay límite.

Esta configuración no tiene en cuenta la cantidad de memoria disponible ni la cantidad total
de memoria de la máquina. La restricción se aplica a una única consulta dentro de un
único servidor.

Puede usar `SHOW PROCESSLIST` para ver el consumo actual de memoria de cada consulta.
El consumo máximo de memoria se registra para cada consulta y se escribe en el log.

El uso de memoria no se rastrea por completo para los estados de las siguientes funciones de agregación
con argumentos `String` y `Array`:

* `min`
* `max`
* `any`
* `anyLast`
* `argMin`
* `argMax`

El consumo de memoria también está restringido por los parámetros [`max_memory_usage_for_user`](/es/reference/settings/session-settings#max_memory_usage_for_user)
y [`max_server_memory_usage`](/es/reference/settings/server-settings/settings#max_server_memory_usage).

<div id="max_memory_usage_for_user">
  ## max\_memory\_usage\_for\_user
</div>

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

La cantidad máxima de RAM que se puede usar para ejecutar las consultas de un usuario en un solo servidor. Cero significa sin límite.

De forma predeterminada, la cantidad no está restringida (`max_memory_usage_for_user = 0`).

Véase también la descripción de [`max_memory_usage`](/es/reference/settings/session-settings#max_memory_usage).

Por ejemplo, si desea establecer `max_memory_usage_for_user` en 1000 bytes para un usuario llamado `clickhouse_read`, puede usar la instrucción

```sql theme={null}
ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;
```

Puedes verificar que ha funcionado cerrando la sesión en tu cliente, volviendo a iniciarla y usando después la función `getSetting`:

```sql theme={null}
SELECT getSetting('max_memory_usage_for_user');
```

<div id="max_network_bandwidth">
  ## max\_network\_bandwidth
</div>

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

Limita la velocidad del intercambio de datos por la red en bytes por segundo. Esta configuración se aplica a cada consulta.

Valores posibles:

* Entero positivo.
* 0 — El control del ancho de banda está deshabilitado.

<div id="max_network_bandwidth_for_all_users">
  ## max\_network\_bandwidth\_for\_all\_users
</div>

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

Limita la velocidad a la que se intercambian los datos a través de la red, en bytes por segundo. Esta configuración se aplica a todas las consultas que se ejecutan de forma concurrente en el servidor.

Valores posibles:

* Entero positivo.
* 0 — El control de la velocidad de transferencia de datos está deshabilitado.

<div id="max_network_bandwidth_for_user">
  ## max\_network\_bandwidth\_for\_user
</div>

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

Limita la velocidad del intercambio de datos por la red en bytes por segundo. Esta configuración se aplica a todas las consultas ejecutadas de forma concurrente por un mismo usuario.

Valores posibles:

* Entero positivo.
* 0 — El control de la velocidad de transferencia de datos está deshabilitado.

<div id="max_network_bytes">
  ## max\_network\_bytes
</div>

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

Limita el volumen de datos (en bytes) que se recibe o transmite por la red al ejecutar una consulta. Esta configuración se aplica a cada consulta de forma individual.

Valores posibles:

* Entero positivo.
* 0 — El control del volumen de datos está desactivado.

<div id="max_number_of_partitions_for_independent_aggregation">
  ## max\_number\_of\_partitions\_for\_independent\_aggregation
</div>

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

Número máximo de particiones de la tabla para aplicar la optimización

<div id="max_os_cpu_wait_time_ratio_to_throw">
  ## max\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se cambiaron los valores de la configuración y se retroportaron a la versión 25.4"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Relación máxima entre los tiempos de espera de la CPU del SO (métrica OSCPUWaitMicroseconds) y de actividad (métrica OSCPUVirtualTimeMicroseconds) a partir de la cual se considera rechazar consultas. Se utiliza interpolación lineal entre la relación mínima y la máxima para calcular la probabilidad; en este punto, la probabilidad es 1.

<div id="max_parallel_replicas">
  ## max\_parallel\_replicas
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Usa hasta 1000 réplicas paralelas de forma predeterminada."}]}]} />

El número máximo de réplicas para cada segmento al ejecutar una consulta.

Valores posibles:

* Entero positivo.

**Información adicional**

Esta opción producirá resultados diferentes según la configuración utilizada.

<div id="parallel-processing-using-sample-key">
  ### Procesamiento en paralelo con la clave `SAMPLE`
</div>

Una consulta puede procesarse más rápido si se ejecuta en varios servidores en paralelo. Sin embargo, el rendimiento de la consulta puede empeorar en los siguientes casos:

* La posición de la clave de muestreo dentro de la clave de partición no permite realizar lecturas por rango de forma eficiente.
* Añadir una clave de muestreo a la tabla hace que el filtrado por otras columnas sea menos eficiente.
* La clave de muestreo es una expresión cuyo cálculo resulta costoso.
* La distribución de la latencia del clúster tiene una cola larga, por lo que consultar más servidores aumenta la latencia total de la consulta.

<div id="parallel-processing-using-parallel_replicas_custom_keyparallel_replicas_custom_key">
  ### Procesamiento paralelo con [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key)
</div>

Esta configuración es útil para cualquier tabla replicada.

<div id="max_parser_backtracks">
  ## max\_parser\_backtracks
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000000"},{"label": "Limitación de la complejidad del análisis sintáctico"}]}]} />

Número máximo de retrocesos del analizador sintáctico (cuántas veces intenta distintas alternativas en el proceso de análisis sintáctico por descenso recursivo).

<div id="max_parser_depth">
  ## max\_parser\_depth
</div>

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

Limita la profundidad máxima de recursión del analizador sintáctico descendente recursivo. Permite controlar el tamaño de la pila.

Valores posibles:

* Entero positivo.
* 0 — La profundidad de recursión es ilimitada.

<div id="max_parsing_threads">
  ## max\_parsing\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "0"},{"label": "Añade un ajuste independiente para controlar el número de hilos en el análisis en paralelo de archivos"}]}]} />

El número máximo de hilos para analizar datos en formatos de entrada que admiten el análisis en paralelo. De forma predeterminada, se calcula automáticamente.

<div id="max_partition_size_to_drop">
  ## max\_partition\_size\_to\_drop
</div>

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

Restricción para eliminar particiones en tiempo de consulta. El valor `0` significa que se pueden eliminar particiones sin ninguna restricción.

Valor predeterminado de Cloud: 1 TB.

<Note>
  Esta configuración de consulta prevalece sobre la configuración equivalente del servidor; consulte [max\_partition\_size\_to\_drop](/es/reference/settings/server-settings/settings#max_partition_size_to_drop)
</Note>

<div id="max_partitions_per_insert_block">
  ## max\_partitions\_per\_insert\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.5"},{"label": "100"},{"label": "Añade un límite al número de particiones en un bloque"}]}]} />

Limita el número máximo de particiones en un único block insertado
y se lanza una excepción si el block contiene demasiadas particiones.

* Entero positivo.
* `0` — Número ilimitado de particiones.

**Detalles**

Al insertar datos, ClickHouse calcula el número de particiones en el
block insertado. Si el número de particiones es mayor que
`max_partitions_per_insert_block`, ClickHouse registra una advertencia o lanza una
excepción según `throw_on_max_partitions_per_insert_block`. Las excepciones tienen
el siguiente texto:

> "Demasiadas particiones para un único bloque INSERT (`partitions_count` particiones; el límite es " + toString(max\_partitions) + ").
> El límite está controlado por la configuración 'max\_partitions\_per\_insert\_block'.
> Un gran número de particiones es un error conceptual frecuente. Esto provocará
> un grave impacto negativo en el rendimiento, incluido un inicio lento del servidor, consultas INSERT lentas
> y consultas SELECT lentas. El número total recomendado de particiones para una tabla es
> inferior a 1000..10000. Tenga en cuenta que la partición no está pensada para acelerar
> las consultas SELECT (la clave ORDER BY es suficiente para que las consultas por rango sean rápidas).
> Las particiones están pensadas para la manipulación de datos (DROP PARTITION, etc.)."

<Note>
  Esta configuración es un umbral de seguridad porque usar un gran número de particiones es un error conceptual frecuente.
</Note>

<div id="max_partitions_to_read">
  ## max\_partitions\_to\_read
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

Limita el número máximo de particiones a las que se puede acceder en una sola consulta.

El valor de configuración especificado al crear la tabla puede sobrescribirse mediante una configuración a nivel de consulta.

Valores posibles:

* Entero positivo
* `-1` - ilimitado (predeterminado)

<Note>
  También puede especificar la configuración de MergeTree [`max_partitions_to_read`](/es/reference/settings/session-settings#max_partitions_to_read) en la configuración de la tabla.
</Note>

<div id="max_parts_to_move">
  ## max\_parts\_to\_move
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

Limita el número de partes que se pueden mover en una sola consulta. Cero significa que no hay límite.

<div id="max_projection_rows_to_use_projection_index">
  ## max\_projection\_rows\_to\_use\_projection\_index
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1000000"},{"label": "Nuevo ajuste"}]}]} />

Si el número de filas que se leerán del índice de proyección es inferior o igual a este umbral, ClickHouse intentará aplicar el índice de proyección durante la ejecución de la consulta.

<div id="max_query_size">
  ## max\_query\_size
</div>

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

El número máximo de bytes de la cadena de consulta que analiza el parser SQL.
Los datos de la cláusula VALUES de las consultas INSERT se procesan mediante un parser de flujo independiente (que consume O(1) de RAM) y no se ven afectados por esta restricción.

<Note>
  `max_query_size` no puede establecerse dentro de una consulta SQL (por ejemplo, `SELECT now() SETTINGS max_query_size=10000`) porque ClickHouse necesita asignar un búfer para analizar la consulta, y el tamaño de este búfer lo determina la configuración `max_query_size`, que debe configurarse antes de ejecutar la consulta.
</Note>

<div id="max_rand_distribution_parameter">
  ## max\_rand\_distribution\_parameter
</div>

<SettingsInfoBlock type="Float" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "Nueva opción de configuración para limitar los parámetros de forma en las funciones de distribución aleatoria y evitar bloqueos con entradas extremas."}]}]} />

Valor máximo de los parámetros de forma de las distribuciones en funciones de distribución aleatoria como `randChiSquared`, `randStudentT` y `randFisherF`. Esto evita tiempos de cálculo excesivamente largos con valores de parámetros extremos.

<div id="max_rand_distribution_trials">
  ## max\_rand\_distribution\_trials
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000000"},{"label": "Nueva configuración para limitar la cantidad de ensayos en las funciones de distribución aleatoria y evitar bloqueos con entradas extremas."}]}]} />

Número máximo de ensayos permitidos para funciones de distribución aleatoria como `randBinomial` y `randNegativeBinomial`. Esto evita tiempos de cálculo extremadamente largos cuando el número de ensayos es elevado.

<div id="max_read_buffer_size">
  ## max\_read\_buffer\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1048576" />

El tamaño máximo del búfer de lectura desde el sistema de archivos.

<div id="max_read_buffer_size_local_fs">
  ## max\_read\_buffer\_size\_local\_fs
</div>

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

El tamaño máximo del búfer de lectura del sistema de archivos local. Si se establece en 0, se utilizará max\_read\_buffer\_size.

<div id="max_read_buffer_size_remote_fs">
  ## max\_read\_buffer\_size\_remote\_fs
</div>

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

El tamaño máximo del búfer de lectura desde un sistema de archivos remoto. Si se establece en 0, se usará max\_read\_buffer\_size.

<div id="max_recursive_cte_evaluation_depth">
  ## max\_recursive\_cte\_evaluation\_depth
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1000"},{"label": "Límite máximo de la profundidad de evaluación de las CTE recursivas"}]}]} />

Límite máximo de la profundidad de evaluación de las CTE recursivas

<div id="max_remote_read_network_bandwidth">
  ## max\_remote\_read\_network\_bandwidth
</div>

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

La velocidad máxima de intercambio de datos a través de la red, en bytes por segundo, para la lectura.

<div id="max_remote_write_network_bandwidth">
  ## max\_remote\_write\_network\_bandwidth
</div>

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

La velocidad máxima de intercambio de datos a través de la red, en bytes por segundo, para la escritura.

<div id="max_replica_delay_for_distributed_queries">
  ## max\_replica\_delay\_for\_distributed\_queries
</div>

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

Desactiva las réplicas con retraso para las consultas distribuidas. Consulte [Replication](/es/reference/engines/table-engines/mergetree-family/replication).

Establece el tiempo en segundos. Si el retraso de una réplica es mayor o igual que el valor establecido, esa réplica no se utiliza.

Valores posibles:

* Entero positivo.
* 0 — No se comprueba el retraso de las réplicas.

Para evitar el uso de cualquier réplica con un retraso distinto de cero, establezca este parámetro en 1.

Se utiliza al ejecutar `SELECT` desde una tabla distribuida que apunta a tablas replicadas.

<div id="max_result_bytes">
  ## max\_result\_bytes
</div>

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

Limita el tamaño del resultado en bytes (sin comprimir). La consulta se detendrá después de procesar un bloque de datos si se alcanza el umbral,
pero no recortará el último bloque del resultado; por lo tanto, el tamaño del resultado puede ser mayor que el umbral.

**Consideraciones**

Para este umbral, se tiene en cuenta el tamaño del resultado en memoria.
Incluso si el tamaño del resultado es pequeño, puede hacer referencia a estructuras de datos más grandes en memoria,
como los diccionarios de columnas LowCardinality y las Arenas de columnas AggregateFunction,
por lo que el umbral puede superarse a pesar del pequeño tamaño del resultado.

<Warning>
  Este ajuste es de un nivel bastante bajo y debe usarse con precaución
</Warning>

<div id="max_result_rows">
  ## max\_result\_rows
</div>

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

Valor predeterminado de Cloud: `0`.

Limita el número de filas del resultado. También se comprueba en las subconsultas y en servidores remotos al ejecutar partes de una consulta distribuida.
No se aplica ningún límite cuando el valor es `0`.

La consulta se detendrá después de procesar un bloque de datos si se alcanza el umbral, pero
no recortará el último bloque del resultado, por lo que el tamaño del resultado puede ser
mayor que el umbral.

<div id="max_reverse_dictionary_lookup_cache_size_bytes">
  ## max\_reverse\_dictionary\_lookup\_cache\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "104857600"},{"label": "Nueva configuración. Tamaño máximo en bytes de la caché de búsqueda inversa en diccionarios por consulta utilizada por la función `dictGetKeys`. La caché almacena tuplas de claves serializadas por valor de atributo para evitar volver a recorrer el diccionario dentro de la misma consulta."}]}]} />

Tamaño máximo en bytes de la caché de búsqueda inversa en diccionarios por consulta utilizada por la función `dictGetKeys`. La caché almacena tuplas de claves serializadas por valor de atributo para evitar volver a recorrer el diccionario dentro de la misma consulta. Cuando se alcanza el límite, las entradas se expulsan mediante LRU. Establezca 0 para desactivar la caché.

<div id="max_rows_for_lazy_final">
  ## max\_rows\_for\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000000"},{"label": "Nueva configuración para el número máximo de filas del conjunto para la optimización lazy FINAL"}]}]} />

Número máximo de filas del conjunto para la optimización lazy FINAL. Si se supera, se recurre a FINAL normal.

<div id="max_rows_in_distinct">
  ## max\_rows\_in\_distinct
</div>

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

El número máximo de filas distintas al usar DISTINCT.

<div id="max_rows_in_join">
  ## max\_rows\_in\_join
</div>

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

Limita el número de filas de la tabla hash que se utiliza al combinar tablas.

Esta configuración se aplica a las operaciones [SELECT ... JOIN](/es/reference/statements/select/join)
y al motor de tabla [Join](/es/reference/engines/table-engines/special/join).

Si una consulta contiene varios JOIN, ClickHouse comprueba esta configuración para cada resultado intermedio.

Cuando se alcanza el límite, ClickHouse puede seguir distintos cursos de acción. Use la
configuración [`join_overflow_mode`](/es/reference/settings/session-settings#join_overflow_mode) para elegir la acción.

Valores posibles:

* Entero positivo.
* `0` — Número ilimitado de filas.

<div id="max_rows_in_set">
  ## max\_rows\_in\_set
</div>

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

El número máximo de filas de un conjunto de datos en la cláusula IN creado a partir de una subconsulta.

<div id="max_rows_in_set_to_optimize_join">
  ## max\_rows\_in\_set\_to\_optimize\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Desactiva la optimización de join, ya que impide la optimización de lectura en orden"}]}]} />

Tamaño máximo del conjunto usado para filtrar las tablas que se van a unir mediante los conjuntos de filas de cada una antes de realizar el join.

Valores posibles:

* 0 — Desactivar.
* Cualquier entero positivo.

<div id="max_rows_to_group_by">
  ## max\_rows\_to\_group\_by
</div>

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

El número máximo de claves únicas recibidas de la aggregación. Esta configuración permite
limitar el consumo de memoria durante la aggregación.

Si la aggregación durante GROUP BY genera más del número especificado de
filas (claves únicas de GROUP BY), el comportamiento vendrá determinado por
'group\_by\_overflow\_mode', que de forma predeterminada es `throw`, aunque también puede cambiarse
a un modo aproximado de GROUP BY.

<div id="max_rows_to_read">
  ## max\_rows\_to\_read
</div>

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

El número máximo de filas que se pueden leer desde una tabla al ejecutar una consulta.
La restricción se comprueba para cada fragmento de datos procesado, se aplica solo a la
expresión de tabla más profunda y, al leer desde un servidor remoto, se comprueba solo en
el servidor remoto.

<div id="max_rows_to_read_leaf">
  ## max\_rows\_to\_read\_leaf
</div>

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

El número máximo de filas que se pueden leer de una tabla local en un nodo hoja al
ejecutar una consulta distribuida. Aunque las consultas distribuidas pueden emitir múltiples subconsultas
a cada segmento (hoja), este límite solo se comprobará en la fase de lectura en los
nodos hoja y se ignorará en la fase de combinación de resultados en el nodo raíz.

Por ejemplo, un clúster consta de 2 segmentos y cada segmento contiene una tabla con
100 filas. La consulta distribuida que debe leer todos los datos de ambas
tablas con la configuración `max_rows_to_read=150` fallará, ya que en total habrá
200 filas. Una consulta con `max_rows_to_read_leaf=150` se ejecutará correctamente, ya que los nodos hoja
leerán como máximo 100 filas.

La restricción se comprueba para cada fragmento de datos procesado.

<Note>
  Esta configuración es inestable con `prefer_localhost_replica=1`.
</Note>

<div id="max_rows_to_sort">
  ## max\_rows\_to\_sort
</div>

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

El número máximo de filas antes de la ordenación. Esto permite limitar el consumo de memoria al ordenar.
Si es necesario procesar más registros que la cantidad especificada para la operación ORDER BY,
el comportamiento vendrá determinado por `sort_overflow_mode`, que de forma predeterminada está configurado como `throw`.

<div id="max_rows_to_transfer">
  ## max\_rows\_to\_transfer
</div>

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

Tamaño máximo (en filas) que se puede transferir a un servidor remoto o guardar en una
tabla temporal cuando se ejecuta la sección GLOBAL IN/JOIN.

<div id="max_sessions_for_user">
  ## max\_sessions\_for\_user
</div>

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

Número máximo de sesiones simultáneas por usuario autenticado en el servidor de ClickHouse.

Ejemplo:

```xml theme={null}
<profiles>
    <single_session_profile>
        <max_sessions_for_user>1</max_sessions_for_user>
    </single_session_profile>
    <two_sessions_profile>
        <max_sessions_for_user>2</max_sessions_for_user>
    </two_sessions_profile>
    <unlimited_sessions_profile>
        <max_sessions_for_user>0</max_sessions_for_user>
    </unlimited_sessions_profile>
</profiles>
<users>
    <!-- El usuario Alice puede conectarse al servidor de ClickHouse como máximo una vez a la vez. -->
    <Alice>
        <profile>single_session_user</profile>
    </Alice>
    <!-- El usuario Bob puede usar 2 sesiones simultáneas. -->
    <Bob>
        <profile>two_sessions_profile</profile>
    </Bob>
    <!-- El usuario Charles puede usar un número ilimitado de sesiones simultáneas. -->
    <Charles>
        <profile>unlimited_sessions_profile</profile>
    </Charles>
</users>
```

Valores posibles:

* Entero positivo
* `0`: número infinito de sesiones simultáneas (valor predeterminado)

<div id="max_size_to_preallocate_for_aggregation">
  ## max\_size\_to\_preallocate\_for\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1000000000000"},{"label": "Habilita la optimización para tablas más grandes."}]}, {"id": "row-2","items": [{"label": "22.12"},{"label": "100000000"},{"label": "Optimiza el rendimiento"}]}]} />

Número total de elementos para los que se permite preasignar espacio en todas las tablas hash antes de la agregació

<div id="max_size_to_preallocate_for_joins">
  ## max\_size\_to\_preallocate\_for\_joins
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "100000000"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "1000000000000"},{"label": "Habilitar la optimización para tablas más grandes."}]}]} />

Para cuántos elementos se permite preasignar espacio en total en todas las tablas hash antes de joi

<div id="max_skip_unavailable_shards_num">
  ## max\_skip\_unavailable\_shards\_num
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración para limitar el número de segmentos que pueden omitirse silenciosamente cuando skip_unavailable_shards está habilitado."}]}]} />

Cuando `skip_unavailable_shards` está habilitado, limita el número máximo de segmentos que pueden omitirse silenciosamente.
Si el número de segmentos no disponibles supera este valor, se lanza una excepción en lugar de omitirlos silenciosamente.

Un valor de 0 significa que no hay límite (comportamiento predeterminado: pueden omitirse todos los segmentos no disponibles).

<div id="max_skip_unavailable_shards_ratio">
  ## max\_skip\_unavailable\_shards\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración para limitar la proporción de segmentos que pueden omitirse silenciosamente cuando skip_unavailable_shards está habilitado."}]}]} />

Cuando `skip_unavailable_shards` está habilitado, limita la proporción máxima (de 0 a 1) de segmentos que pueden omitirse silenciosamente.
Si la proporción de segmentos no disponibles respecto al total de segmentos supera este valor, se lanza una excepción en lugar de omitirlos silenciosamente.

Un valor de 0 significa que no hay límite (comportamiento predeterminado: se pueden omitir todos los segmentos no disponibles).

<div id="max_streams_for_files_processing_in_cluster_functions">
  ## max\_streams\_for\_files\_processing\_in\_cluster\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Añade una nueva configuración que permite limitar el número de flujos para el procesamiento de archivos en las *funciones de tabla de clúster*"}]}]} />

Si no es cero, limita el número de hilos que leen datos de archivos en las *funciones de tabla de clúster*.

<div id="max_streams_for_merge_tree_reading">
  ## max\_streams\_for\_merge\_tree\_reading
</div>

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

Si no es cero, limita el número de streams de lectura para la tabla MergeTree.

<div id="max_streams_for_union_step">
  ## max\_streams\_for\_union\_step
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para limitar el número de streams de datos activos simultáneamente en un paso `UNION` y reducir el uso máximo de memoria."}]}]} />

Limita el número de streams de datos activos simultáneamente en un paso `UNION` (se aplica tanto a `UNION ALL` como a `UNION DISTINCT`, porque `UNION DISTINCT` se implementa mediante un paso `UNION ALL` seguido de un paso `DISTINCT`). Cuando una consulta `UNION` tiene muchas subconsultas, todas abren sus búferes de lectura al mismo tiempo, lo que hace que el uso de memoria sea proporcional al número de subconsultas. Esta configuración inserta procesadores `Concat` para estrechar la canalización, de modo que como máximo este número de streams esté activo a la vez, lo que reduce drásticamente el pico de memoria. El límite real es el menor entre este valor y `max_threads * max_streams_for_union_step_to_max_threads_ratio` (si cualquiera de los dos es 0, se ignora). Cuando ambos son 0, no se aplica ningún estrechamiento.

<div id="max_streams_for_union_step_to_max_threads_ratio">
  ## max\_streams\_for\_union\_step\_to\_max\_threads\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "8"},{"label": "Nueva configuración: el límite de flujos activos simultáneamente en un paso de UNION se calcula como min(max_streams_for_union_step, max_threads * max_streams_for_union_step_to_max_threads_ratio); si cualquiera de los dos es 0, ese valor se ignora."}]}]} />

Esta proporción, multiplicada por `max_threads`, determina un límite de flujos activos simultáneamente en un paso `UNION` (se aplica tanto a `UNION ALL` como a `UNION DISTINCT`). El límite real es el mínimo entre este valor calculado y `max_streams_for_union_step` (si cualquiera de los dos es 0, se ignora). Por ejemplo, con `max_threads = 8` y esta proporción establecida en 1, habrá como máximo 8 flujos activos. Establézcala en 0 para desactivar este límite basado en la proporción.

<div id="max_streams_multiplier_for_merge_tables">
  ## max\_streams\_multiplier\_for\_merge\_tables
</div>

<SettingsInfoBlock type="Float" default_value="5" />

Solicita más flujos al leer de una tabla Merge. Los flujos se distribuirán entre las tablas que utiliza la tabla Merge. Esto permite repartir el trabajo de forma más uniforme entre los hilos y resulta especialmente útil cuando las tablas fusionadas difieren en tamaño.

<div id="max_streams_to_max_threads_ratio">
  ## max\_streams\_to\_max\_threads\_ratio
</div>

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

Permite usar más flujos que hilos para distribuir el trabajo de forma más uniforme entre ellos. Se asume que esta es una solución temporal, ya que en el futuro será posible hacer que el número de flujos sea igual al número de hilos, pero que cada flujo seleccione dinámicamente el trabajo disponible por sí mismo.

<div id="max_subquery_depth">
  ## max\_subquery\_depth
</div>

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

Si una consulta tiene más subconsultas anidadas que el número especificado, se
genera una excepción.

<Tip>
  Esto permite realizar una comprobación de cordura para evitar que los usuarios de su
  cluster escriban consultas excesivamente complejas.
</Tip>

<div id="max_table_size_to_drop">
  ## max\_table\_size\_to\_drop
</div>

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

Restricción para eliminar tablas durante la ejecución de la consulta. El valor `0` significa que puede eliminar todas las tablas sin ninguna restricción.

Valor predeterminado de Cloud: 1 TB.

<Note>
  Esta configuración de consulta anula la configuración equivalente del servidor; consulte [max\_table\_size\_to\_drop](/es/reference/settings/server-settings/settings#max_table_size_to_drop)
</Note>

<div id="max_temporary_columns">
  ## max\_temporary\_columns
</div>

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

El número máximo de columnas temporales que deben mantenerse simultáneamente en RAM
al ejecutar una consulta, incluidas las columnas constantes. Si una consulta genera en
memoria un número de columnas temporales superior al especificado como resultado de un
cálculo intermedio, se genera una excepción.

<Tip>
  Esta configuración es útil para evitar consultas excesivamente complejas.
</Tip>

El valor `0` significa que no hay límite.

<div id="max_temporary_data_on_disk_size_for_query">
  ## max\_temporary\_data\_on\_disk\_size\_for\_query
</div>

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

La cantidad máxima de datos consumida por los archivos temporales en disco, en bytes, para todas
las consultas que se ejecutan de forma concurrente.

Valores posibles:

* Entero positivo.
* `0` — ilimitado (predeterminado)

<div id="max_temporary_data_on_disk_size_for_user">
  ## max\_temporary\_data\_on\_disk\_size\_for\_user
</div>

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

La cantidad máxima de datos, en bytes, consumidos por los archivos temporales en disco para todas
las consultas del usuario que se ejecutan de forma concurrente.

Valores posibles:

* Entero positivo.
* `0` — ilimitado (predeterminado)

<div id="max_temporary_non_const_columns">
  ## max\_temporary\_non\_const\_columns
</div>

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

Al igual que `max_temporary_columns`, es el número máximo de columnas temporales que deben
mantenerse simultáneamente en RAM al ejecutar una consulta, sin contar las
columnas constantes.

<Note>
  Las columnas constantes se generan con bastante frecuencia al ejecutar una consulta, pero requieren
  prácticamente cero recursos de cómputo.
</Note>

<div id="max_threads">
  ## max\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

El número máximo de hilos de procesamiento de consultas, excluidos los hilos para recuperar datos de servidores remotos (consulte el parámetro ['max\_distributed\_connections'](/es/reference/settings/session-settings#max_distributed_connections)).

Este parámetro se aplica a los hilos que ejecutan las mismas etapas de la canalización de procesamiento de consultas en paralelo.
Por ejemplo, al leer de una tabla, si es posible evaluar expresiones con funciones, filtrar con `WHERE` y preagregar para `GROUP BY` en paralelo usando al menos 'max\_threads' hilos, se usan 'max\_threads'.

Para las consultas que se completan rápidamente debido a un LIMIT, puede establecer un valor más bajo de 'max\_threads'.
Por ejemplo, si el número necesario de entradas se encuentra en cada bloque y max\_threads = 8, se recuperan 8 bloques, aunque habría bastado con leer solo uno.
Cuanto menor sea el valor de `max_threads`, menos memoria se consume.

De forma predeterminada, la configuración `max_threads` coincide con el número de hilos de hardware (número de CPU cores) disponibles para ClickHouse.
Como caso especial, para procesadores x86 con menos de 32 CPU cores y SMT (por ejemplo, Intel HyperThreading), ClickHouse usa de forma predeterminada el número de núcleos lógicos (= 2 x número de núcleos físicos).

Sin SMT (por ejemplo, Intel HyperThreading), esto corresponde al número de CPU cores.

Para los usuarios de ClickHouse Cloud, el valor predeterminado se mostrará como `auto(N)`, donde N coincide con el tamaño de vCPU de su servicio, por ejemplo, 2vCPU/8GiB, 4vCPU/16GiB, etc.
Consulte la pestaña de configuración en la consola de Cloud para ver una lista de todos los tamaños de servicio.

<div id="max_threads_for_indexes">
  ## max\_threads\_for\_indexes
</div>

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

El número máximo de hilos para procesar índices.

<div id="max_threads_min_free_memory_per_thread">
  ## max\_threads\_min\_free\_memory\_per\_thread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1073741824"},{"label": "Nueva configuración para limitar la cantidad de hilos en función de la memoria libre disponible"}]}]} />

Reduce `max_threads` cuando el servidor está bajo presión de memoria, para evitar iniciar consultas con un alto nivel de paralelismo que probablemente alcancen el límite de memoria.

La memoria libre se calcula como `max_server_memory_usage` del servidor menos la memoria que actualmente registra el memory tracker global. Si esa memoria libre es inferior a `max_threads` multiplicado por este valor, `max_threads` se reduce al mayor valor de N tal que `N * value <= free_memory`, con un mínimo de `1`.

Establézcalo en `0` para desactivar este límite.

Por ejemplo, con el valor predeterminado de 1 GiB y 32 GiB de memoria libre, `max_threads` queda limitado a 32; con 1 GiB de memoria libre, se reduce a 1.

Esta configuración se aplica al paralelismo del lado de lectura (`SELECT`, `UNION`, `INTERSECT`/`EXCEPT` y el lado `SELECT` de `INSERT ... SELECT`). Para el lado de escritura, consulte `max_insert_threads_min_free_memory_per_thread`.

<div id="max_untracked_memory">
  ## max\_untracked\_memory
</div>

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

Las asignaciones y liberaciones pequeñas se agrupan en una variable local del thread y solo se rastrean o perfilan cuando una cantidad (en valor absoluto) supera el valor especificado. Si el valor es mayor que 'memory\_profiler\_step', en la práctica se reducirá a 'memory\_profiler\_step'.

<div id="max_wkb_geometry_elements">
  ## max\_wkb\_geometry\_elements
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "Nueva configuración para limitar el número de elementos en el análisis de geometrías WKB, evitando asignaciones excesivas de memoria con datos malformados."}]}]} />

Número máximo de puntos, anillos o polígonos permitidos en un único elemento de geometría WKB durante el análisis por `readWKB` y funciones relacionadas. Esto protege frente a asignaciones excesivas de memoria causadas por datos WKB malformados. Establézcalo en 0 para usar el límite fijo en el código (100 millones).

<div id="memory_overcommit_ratio_denominator">
  ## memory\_overcommit\_ratio\_denominator
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.5"},{"label": "1073741824"},{"label": "Habilita la característica de memory overcommit de forma predeterminada"}]}]} />

Representa el límite de memoria blando cuando se alcanza el límite estricto a nivel global.
Este valor se usa para calcular el ratio de overcommit de la consulta.
Cero significa omitir la consulta.
Lea más sobre [memory overcommit](/es/concepts/features/configuration/settings/memory-overcommit).

<div id="memory_overcommit_ratio_denominator_for_user">
  ## memory\_overcommit\_ratio\_denominator\_for\_user
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.5"},{"label": "1073741824"},{"label": "Habilita la característica memory overcommit de forma predeterminada"}]}]} />

Representa el límite de memoria blando cuando se alcanza el límite estricto a nivel de usuario.
Este valor se usa para calcular el ratio de overcommit de la consulta.
Un valor de cero significa omitir la consulta.
Más información sobre [memory overcommit](/es/concepts/features/configuration/settings/memory-overcommit).

<div id="memory_profiler_sample_max_allocation_size">
  ## memory\_profiler\_sample\_max\_allocation\_size
</div>

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

Recopila allocations aleatorias de tamaño menor o igual que el valor especificado, con una probabilidad igual a `memory_profiler_sample_probability`. 0 significa que está deshabilitado. Es posible que quieras establecer `max_untracked_memory` en 0 para que este umbral funcione como se espera.

<div id="memory_profiler_sample_min_allocation_size">
  ## memory\_profiler\_sample\_min\_allocation\_size
</div>

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

Recopila asignaciones de memoria aleatorias de tamaño mayor o igual que el valor especificado, con una probabilidad igual a `memory_profiler_sample_probability`. 0 significa que está deshabilitado. Puede que quieras establecer `max_untracked_memory` en 0 para que este umbral funcione como se espera.

<div id="memory_profiler_sample_probability">
  ## memory\_profiler\_sample\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Recopila asignaciones y liberaciones aleatorias y las escribe en system.trace\_log con el trace\_type 'MemorySample'. La probabilidad se aplica a cada operación de alloc/free, independientemente del tamaño de la asignación (puede cambiarse con `memory_profiler_sample_min_allocation_size` y `memory_profiler_sample_max_allocation_size`). Ten en cuenta que el muestreo solo se produce cuando la cantidad de memoria no registrada supera 'max\_untracked\_memory'. Puede que te convenga establecer 'max\_untracked\_memory' en 0 para obtener un muestreo aún más detallado.

<div id="memory_profiler_step">
  ## memory\_profiler\_step
</div>

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

Establece el intervalo del perfilador de memoria. Cada vez que el uso de memoria de una consulta supere el siguiente intervalo en bytes, el perfilador de memoria recopilará el stacktrace de asignación y lo escribirá en [trace\_log](/es/reference/system-tables/trace_log).

Valores posibles:

* Un número entero positivo de bytes.

* 0 para desactivar el perfilador de memoria.

<div id="memory_tracker_fault_probability">
  ## memory\_tracker\_fault\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Para probar la `seguridad ante excepciones`, lanza una excepción cada vez que se asigne memoria con la probabilidad especificada.

<div id="memory_usage_overcommit_max_wait_microseconds">
  ## memory\_usage\_overcommit\_max\_wait\_microseconds
</div>

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

Tiempo máximo que el thread esperará a que se libere memoria en caso de overcommit de memoria a nivel de usuario.
Si se alcanza el timeout y no se libera memoria, se lanza una excepción.
Lea más sobre [memory overcommit](/es/concepts/features/configuration/settings/memory-overcommit).

<div id="merge_table_max_tables_to_look_for_schema_inference">
  ## merge\_table\_max\_tables\_to\_look\_for\_schema\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

Al crear una tabla `Merge` sin un esquema explícito o al usar la función de tabla `merge`, el esquema se infiere como la unión de no más de la cantidad especificada de tablas coincidentes.
Si el número de tablas es mayor, el esquema se inferirá a partir de las primeras tablas hasta alcanzar la cantidad especificada.

<div id="merge_tree_coarse_index_granularity">
  ## merge\_tree\_coarse\_index\_granularity
</div>

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

Al buscar datos, ClickHouse comprueba las marcas de datos del archivo de índice. Si ClickHouse detecta que las claves necesarias están dentro de algún rango, divide ese rango en `merge_tree_coarse_index_granularity` subrangos y busca recursivamente las claves necesarias en ellos.

Valores posibles:

* Cualquier entero par positivo.

<div id="merge_tree_compact_parts_min_granules_to_multibuffer_read">
  ## merge\_tree\_compact\_parts\_min\_granules\_to\_multibuffer\_read
</div>

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

Solo tiene efecto en ClickHouse Cloud. Número de gránulos en una franja de una parte compacta de las tablas MergeTree para usar el lector multibúfer, que admite lectura en paralelo y lectura anticipada. En caso de leer desde un sistema de archivos remoto, el uso del lector multibúfer aumenta el número de solicitudes de lectura.

<div id="merge_tree_determine_task_size_by_prewhere_columns">
  ## merge\_tree\_determine\_task\_size\_by\_prewhere\_columns
</div>

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

Si se debe usar solo el tamaño de las columnas de prewhere para determinar el tamaño de la tarea de lectura.

<div id="merge_tree_max_bytes_to_use_cache">
  ## merge\_tree\_max\_bytes\_to\_use\_cache
</div>

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

Si ClickHouse necesita leer más de `merge_tree_max_bytes_to_use_cache` bytes en una consulta, no utiliza la caché de bloques sin comprimir.

La caché de bloques sin comprimir almacena los datos extraídos para las consultas. ClickHouse utiliza esta caché para acelerar las respuestas a consultas pequeñas repetidas. Esta configuración evita que la caché se vea afectada por consultas que leen una gran cantidad de datos. La configuración del servidor [uncompressed\_cache\_size](/es/reference/settings/server-settings/settings#uncompressed_cache_size) define el tamaño de la caché de bloques sin comprimir.

Valores posibles:

* Cualquier entero positivo.

<div id="merge_tree_max_rows_to_use_cache">
  ## merge\_tree\_max\_rows\_to\_use\_cache
</div>

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

Si ClickHouse tiene que leer más de `merge_tree_max_rows_to_use_cache` filas en una consulta, no utiliza la caché de bloques sin comprimir.

La caché de bloques sin comprimir almacena datos extraídos durante las consultas. ClickHouse utiliza esta caché para acelerar las respuestas a consultas pequeñas repetidas. Esta configuración evita que consultas que leen grandes volúmenes de datos degraden la caché. La configuración del servidor [uncompressed\_cache\_size](/es/reference/settings/server-settings/settings#uncompressed_cache_size) define el tamaño de la caché de bloques sin comprimir.

Valores posibles:

* Cualquier entero positivo.

<div id="merge_tree_min_bytes_for_concurrent_read">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read
</div>

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

Si la cantidad de bytes que se va a leer de un archivo de una tabla con motor [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) supera `merge_tree_min_bytes_for_concurrent_read`, ClickHouse intenta leer este archivo de forma concurrente en varios hilos.

Valor posible:

* Entero positivo.

<div id="merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "La configuración está obsoleta"}]}]} />

La cantidad mínima de bytes que se deben leer de un archivo para que el motor [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) pueda paralelizar la lectura cuando se lee desde un sistema de archivos remoto. No recomendamos usar esta configuración.

Valores posibles:

* Entero positivo.

<div id="merge_tree_min_bytes_for_seek">
  ## merge\_tree\_min\_bytes\_for\_seek
</div>

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

Si la distancia entre dos bloques de datos que deben leerse en un archivo es menor que `merge_tree_min_bytes_for_seek` bytes, ClickHouse lee secuencialmente un rango del archivo que contiene ambos bloques, evitando así una operación de búsqueda adicional.

Valores posibles:

* Cualquier entero positivo.

<div id="merge_tree_min_bytes_per_task_for_remote_reading">
  ## merge\_tree\_min\_bytes\_per\_task\_for\_remote\_reading
</div>

**Aliases**: `filesystem_prefetch_min_bytes_for_single_read_task`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "2097152"},{"label": "El valor se ha unificado con `filesystem_prefetch_min_bytes_for_single_read_task`"}]}]} />

Cantidad mínima de bytes que se deben leer por tarea.

<div id="merge_tree_min_read_task_size">
  ## merge\_tree\_min\_read\_task\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "8"},{"label": "Nueva configuración"}]}]} />

Límite inferior estricto del tamaño de la tarea (incluso cuando el número de gránulos es bajo y el número de hilos disponibles es alto, no asignaremos tareas más pequeñas

<div id="merge_tree_min_rows_for_concurrent_read">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read
</div>

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

Si el número de filas que se va a leer desde un archivo de una tabla [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) supera `merge_tree_min_rows_for_concurrent_read`, ClickHouse intenta realizar una lectura concurrente de ese archivo en varios hilos.

Valores posibles:

* Entero positivo.

<div id="merge_tree_min_rows_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "La configuración está obsoleta"}]}]} />

La cantidad mínima de filas que se deben leer de un archivo para que el motor [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree) pueda paralelizar la lectura al leer desde un sistema de archivos remoto. No recomendamos usar esta configuración.

Valores posibles:

* Entero positivo.

<div id="merge_tree_min_rows_for_seek">
  ## merge\_tree\_min\_rows\_for\_seek
</div>

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

Si la distancia entre dos bloques de datos que deben leerse de un archivo es menor que `merge_tree_min_rows_for_seek` filas, ClickHouse no se desplaza por el archivo, sino que lee los datos secuencialmente.

Valores posibles:

* Cualquier entero positivo.

<div id="merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability">
  ## merge\_tree\_read\_split\_ranges\_into\_intersecting\_and\_non\_intersecting\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Para probar `PartsSplitter`: divide los rangos de lectura en rangos que se intersecan y rangos que no se intersecan cada vez que se lee desde MergeTree con la probabilidad especificada."}]}]} />

Para probar `PartsSplitter`: divide los rangos de lectura en rangos que se intersecan y rangos que no se intersecan cada vez que se lee desde MergeTree con la probabilidad especificada.

<div id="merge_tree_storage_snapshot_sleep_ms">
  ## merge\_tree\_storage\_snapshot\_sleep\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Una nueva configuración para depurar la consistencia de la instantánea de almacenamiento durante la consulta"}]}]} />

Introduce un retraso artificial (en milisegundos) al crear una instantánea de almacenamiento para tablas MergeTree.
Se usa únicamente con fines de prueba y depuración.

Valores posibles:

* 0 - Sin retraso (predeterminado)
* N - Retraso en milisegundos

<div id="merge_tree_use_const_size_tasks_for_remote_reading">
  ## merge\_tree\_use\_const\_size\_tasks\_for\_remote\_reading
</div>

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

Indica si se deben usar tareas de tamaño constante para leer desde una tabla remota.

<div id="merge_tree_use_deserialization_prefixes_cache">
  ## merge\_tree\_use\_deserialization\_prefixes\_cache
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Una nueva configuración para controlar el uso de la caché de prefijos de deserialización en MergeTree"}]}]} />

Habilita el almacenamiento en caché de los metadatos de las columnas desde los prefijos de archivo durante la lectura desde discos remotos en MergeTree.

<div id="merge_tree_use_prefixes_deserialization_thread_pool">
  ## merge\_tree\_use\_prefixes\_deserialization\_thread\_pool
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Una nueva configuración que controla el uso del pool de hilos para la deserialización paralela de prefijos en MergeTree"}]}]} />

Habilita el uso del pool de hilos para la lectura paralela de prefijos en partes Wide en MergeTree. El tamaño de ese pool de hilos se controla mediante la configuración del servidor `max_prefixes_deserialization_thread_pool_size`.

<div id="merge_tree_use_v1_object_and_dynamic_serialization">
  ## merge\_tree\_use\_v1\_object\_and\_dynamic\_serialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Agrega la nueva versión de serialización V2 para los tipos JSON y Dynamic"}]}]} />

Cuando está habilitada, en MergeTree se usará la versión de serialización V1 de los tipos JSON y Dynamic en lugar de V2. Este cambio en la configuración solo surte efecto después de reiniciar el servidor.

<div id="metrics_perf_events_enabled">
  ## metrics\_perf\_events\_enabled
</div>

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

Si está habilitada, algunos de los eventos de perf se medirán durante la ejecución de las consultas.

<div id="metrics_perf_events_list">
  ## metrics\_perf\_events\_list
</div>

Lista separada por comas de métricas de perf que se medirán durante la ejecución de las consultas. Si está vacío, significa que se medirán todos los eventos. Consulte PerfEventInfo en sources para ver los eventos disponibles.

<div id="min_bytes_to_use_direct_io">
  ## min\_bytes\_to\_use\_direct\_io
</div>

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

El volumen mínimo de datos necesario para usar acceso de E/S directa al disco de almacenamiento.

ClickHouse utiliza esta configuración al leer datos de las tablas. Si el volumen total de almacenamiento de todos los datos que se van a leer supera `min_bytes_to_use_direct_io` bytes, ClickHouse lee los datos del disco de almacenamiento con la opción `O_DIRECT`.

Valores posibles:

* 0 — La E/S directa está deshabilitada.
* Entero positivo.

<div id="min_bytes_to_use_mmap_io">
  ## min\_bytes\_to\_use\_mmap\_io
</div>

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

Esta es una configuración experimental. Establece la cantidad mínima de memoria para leer archivos grandes sin copiar datos del kernel al espacio de usuario. El umbral recomendado es de aproximadamente 64 MB, porque [mmap/munmap](https://en.wikipedia.org/wiki/Mmap) es lento. Solo tiene sentido para archivos grandes y solo resulta útil si los datos residen en la caché de páginas.

Valores posibles:

* Entero positivo.
* 0 — Los archivos grandes se leen únicamente copiando datos del kernel al espacio de usuario.

<div id="min_chunk_bytes_for_parallel_parsing">
  ## min\_chunk\_bytes\_for\_parallel\_parsing
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="10485760" />

* Tipo: entero sin signo
* Valor predeterminado: 1 MiB

El tamaño mínimo del fragmento, en bytes, que cada hilo analizará en paralelo.

<div id="min_compress_block_size">
  ## min\_compress\_block\_size
</div>

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

Para las tablas [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree). Para reducir la latencia al procesar consultas, un bloque se comprime al escribir la siguiente marca si su tamaño es de al menos `min_compress_block_size`. El valor predeterminado es 65,536.

El tamaño real del bloque, si los datos sin comprimir son inferiores a `max_compress_block_size`, no será menor que este valor ni menor que el volumen de datos correspondiente a una marca.

Veamos un ejemplo. Supongamos que `index_granularity` se estableció en 8192 durante la creación de la tabla.

Estamos escribiendo una columna de tipo UInt32 (4 bytes por valor). Al escribir 8192 filas, el total será de 32 KB de datos. Como min\_compress\_block\_size = 65,536, se formará un bloque comprimido cada dos marcas.

Estamos escribiendo una columna URL de tipo String (con un tamaño medio de 60 bytes por valor). Al escribir 8192 filas, el total medio será de algo menos de 500 KB de datos. Como esto supera 65,536, se formará un bloque comprimido para cada marca. En este caso, al leer datos del disco dentro del rango de una sola marca, no habrá que descomprimir datos adicionales.

<Note>
  Esta es una configuración de nivel experto y no deberías cambiarla si apenas estás empezando con ClickHouse.
</Note>

<div id="min_count_to_compile_aggregate_expression">
  ## min\_count\_to\_compile\_aggregate\_expression
</div>

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

El número mínimo de expresiones de agregación idénticas necesario para iniciar la compilación JIT. Solo funciona si la configuración [compile\_aggregate\_expressions](#compile_aggregate_expressions) está habilitada.

Valores posibles:

* Entero positivo.
* 0 — Las expresiones de agregación idénticas siempre se compilan con JIT.

<div id="min_count_to_compile_expression">
  ## min\_count\_to\_compile\_expression
</div>

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

Número mínimo de ejecuciones de la misma expression antes de que se compile.

<div id="min_count_to_compile_sort_description">
  ## min\_count\_to\_compile\_sort\_description
</div>

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

El número de descripciones de ordenación idénticas antes de compilarlas con JIT

<div id="min_execution_speed">
  ## min\_execution\_speed
</div>

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

Velocidad mínima de ejecución en filas por segundo. Se comprueba en cada bloque de datos cuando
[`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed)
vence. Si la velocidad de ejecución es inferior, se lanza una excepción.

<div id="min_execution_speed_bytes">
  ## min\_execution\_speed\_bytes
</div>

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

El número mínimo de bytes procesados por segundo. Se comprueba en cada bloque de datos cuando
[`timeout_before_checking_execution_speed`](/es/reference/settings/session-settings#timeout_before_checking_execution_speed)
vence. Si la velocidad de ejecución es inferior, se produce una excepción.

<div id="min_external_table_block_size_bytes">
  ## min\_external\_table\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "268402944"},{"label": "Agrupa los bloques enviados a la tabla externa hasta alcanzar el tamaño especificado en bytes, si no son lo suficientemente grandes."}]}]} />

Agrupa los bloques enviados a la tabla externa hasta alcanzar el tamaño especificado en bytes, si no son lo suficientemente grandes.

<div id="min_external_table_block_size_rows">
  ## min\_external\_table\_block\_size\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1048449"},{"label": "Combina los bloques enviados a la tabla externa hasta alcanzar el tamaño especificado, medido en filas, si los bloques no son lo suficientemente grandes"}]}]} />

Combina los bloques enviados a la tabla externa hasta alcanzar el tamaño especificado, medido en filas, si los bloques no son lo suficientemente grandes.

<div id="min_filtered_ratio_for_lazy_final">
  ## min\_filtered\_ratio\_for\_lazy\_final
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0.5"},{"label": "Nueva configuración para la proporción mínima de marcas filtradas necesaria para que continúe la optimización lazy FINAL"}]}]} />

Proporción mínima de marcas filtradas por el análisis de índices para la optimización lazy FINAL. Si se filtra menos de esta fracción de marcas, se recurre al FINAL normal. El valor 0 desactiva esta comprobación.

<div id="min_free_disk_bytes_to_perform_insert">
  ## min\_free\_disk\_bytes\_to\_perform\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Mantiene algunos bytes de espacio libre en disco para las inserciones, sin dejar de permitir la escritura temporal."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Bytes mínimos de espacio libre en disco para realizar una inserción.

<div id="min_free_disk_ratio_to_perform_insert">
  ## min\_free\_disk\_ratio\_to\_perform\_insert
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Mantiene una parte del espacio libre en disco, expresada como proporción del espacio total del disco, frente a las inserciones, sin dejar de permitir escrituras temporales."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Proporción mínima de espacio libre en disco necesaria para realizar una inserción.

<div id="min_free_disk_space_for_temporary_data">
  ## min\_free\_disk\_space\_for\_temporary\_data
</div>

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

El espacio mínimo en disco que debe mantenerse al escribir datos temporales utilizados en la ordenación externa y la agregación.

<div id="min_hit_rate_to_use_consecutive_keys_optimization">
  ## min\_hit\_rate\_to\_use\_consecutive\_keys\_optimization
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

Tasa mínima de aciertos de una caché usada en la optimización de claves consecutivas en la agregación para mantenerla habilitada

<div id="min_insert_block_size_bytes">
  ## min\_insert\_block\_size\_bytes
</div>

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

El tamaño mínimo de los bloques (en bytes) que deben formarse para insertarlos en una tabla.

Esta configuración funciona junto con min\_insert\_block\_size\_rows y controla la formación de bloques en los mismos contextos (análisis del formato y operaciones INSERT). Consulte min\_insert\_block\_size\_rows para obtener información detallada sobre cuándo y cómo se aplican estas configuraciones.

Valores posibles:

* Entero positivo.
* 0 — la configuración no interviene en la formación de bloques.

<div id="min_insert_block_size_bytes_for_materialized_views">
  ## min\_insert\_block\_size\_bytes\_for\_materialized\_views
</div>

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

Establece la cantidad mínima de bytes del bloque que puede insertarse en una tabla mediante una consulta `INSERT`. Los bloques más pequeños se compactan en bloques más grandes. Esta configuración se aplica solo a los bloques insertados en una [vista materializada](/es/reference/statements/create/view). Al ajustar esta configuración, puede controlarse la compactación de bloques al insertarlos en la vista materializada y evitar un uso excesivo de memoria.

Valores posibles:

* Cualquier entero positivo.
* 0 — Compactación deshabilitada.

**Véase también**

* [min\_insert\_block\_size\_bytes](#min_insert_block_size_bytes)

<div id="min_insert_block_size_rows">
  ## min\_insert\_block\_size\_rows
</div>

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

El tamaño mínimo de los bloques (en filas) que deben formarse para insertarlos en una tabla.

Esta configuración controla la formación de bloques en dos contextos:

1. Análisis de formatos: Cuando el servidor analiza formatos de entrada basados en filas (CSV, TSV, JSONEachRow, etc.) desde cualquier interfaz (HTTP, clickhouse-client con datos en línea, gRPC, protocolo wire de PostgreSQL), los bloques se generan cuando:

   * Se alcanzan tanto min\_insert\_block\_size\_rows COMO min\_insert\_block\_size\_bytes, O
   * Se alcanza max\_insert\_block\_size\_rows O max\_insert\_block\_size\_bytes

   Nota: Al usar clickhouse-client o clickhouse-local para leer desde un archivo, el propio cliente analiza los datos y esta configuración se aplica del lado del cliente.

2. Operaciones INSERT: Durante las consultas INSERT y cuando los datos fluyen a través de vistas materializadas, el comportamiento de esta configuración depende de `use_strict_insert_block_limits`:

   * Cuando está habilitada: Los bloques se generan cuando:
     * Umbrales mínimos (AND): Se alcanzan tanto min\_insert\_block\_size\_rows COMO min\_insert\_block\_size\_bytes
     * Umbrales máximos (OR): Se alcanza max\_insert\_block\_size\_rows O max\_insert\_block\_size\_bytes

   * Cuando está deshabilitada (valor predeterminado): Los bloques se generan cuando se alcanza min\_insert\_block\_size\_rows O min\_insert\_block\_size\_bytes. No se aplican las configuraciones max\_insert\_block\_size.

Valores posibles:

* Entero positivo.
* 0 — la configuración no participa en la formación de bloques.

<div id="min_insert_block_size_rows_for_materialized_views">
  ## min\_insert\_block\_size\_rows\_for\_materialized\_views
</div>

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

Establece el número mínimo de filas del bloque que pueden insertarse en una tabla mediante una consulta `INSERT`. Los bloques más pequeños se agrupan en otros más grandes. Esta configuración se aplica solo a los bloques insertados en una [vista materializada](/es/reference/statements/create/view). Al ajustar esta configuración, se controla la agrupación de bloques al enviarlos a la vista materializada y se evita un uso excesivo de memoria.

Valores posibles:

* Cualquier entero positivo.
* 0 — Agrupación deshabilitada.

**Véase también**

* [min\_insert\_block\_size\_rows](#min_insert_block_size_rows)

<div id="min_joined_block_size_bytes">
  ## min\_joined\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "524288"},{"label": "Nueva configuración."}]}]} />

Tamaño mínimo del bloque, en bytes, para los bloques de entrada y salida de JOIN (si el algoritmo JOIN lo admite). Los bloques pequeños se compactarán. 0 significa que no hay límite.

<div id="min_joined_block_size_rows">
  ## min\_joined\_block\_size\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "65409"},{"label": "Nueva configuración."}]}]} />

Tamaño mínimo de bloque, en filas, para los bloques de entrada y salida de JOIN (si el algoritmo de JOIN lo admite). Los bloques pequeños se compactan. 0 significa sin límite.

<div id="min_os_cpu_wait_time_ratio_to_throw">
  ## min\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se cambiaron los valores de la configuración y se retroportaron a la 25.4"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva opción de configuración"}]}]} />

Relación mínima entre los tiempos de espera de CPU del SO (métrica OSCPUWaitMicroseconds) y de actividad (métrica OSCPUVirtualTimeMicroseconds) para empezar a considerar el rechazo de consultas. Se utiliza interpolación lineal entre la relación mínima y la máxima para calcular la probabilidad; en este punto, la probabilidad es 0.

<div id="min_outstreams_per_resize_after_split">
  ## min\_outstreams\_per\_resize\_after\_split
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "24"},{"label": "Nueva configuración."}]}]} />

Especifica el número mínimo de flujos de salida de un procesador `Resize` o `StrictResize` después de realizar la división durante la generación de la canalización. Si el número resultante de flujos es inferior a este valor, la operación de división no se realizará.

<div id="what-is-a-resize-node">
  ### Qué es un nodo Resize
</div>

Un nodo `Resize` es un procesador del pipeline de consultas que ajusta la cantidad de flujos de datos que circulan por el pipeline. Puede aumentar o reducir la cantidad de flujos para equilibrar la carga de trabajo entre varios hilos o procesadores. Por ejemplo, si una consulta requiere más paralelismo, el nodo `Resize` puede dividir un único flujo en varios flujos. A la inversa, puede fusionar varios flujos en menos flujos para consolidar el procesamiento de los datos.

El nodo `Resize` garantiza que los datos se distribuyan uniformemente entre los flujos, manteniendo la estructura de los bloques de datos. Esto ayuda a optimizar el uso de los recursos y a mejorar el rendimiento de las consultas.

<div id="why-the-resize-node-needs-to-be-split">
  ### Por qué es necesario dividir el nodo Resize
</div>

Durante la ejecución del pipeline, `ExecutingGraph::Node::status_mutex` del nodo `Resize`, que actúa como concentrador central, sufre una fuerte contención, especialmente en entornos con muchos núcleos, y esta contención provoca:

1. Un aumento de la latencia de `ExecutingGraph::updateNode`, lo que afecta directamente al rendimiento de las consultas.
2. Un desperdicio excesivo de ciclos de CPU por la contención del spin-lock (`native_queued_spin_lock_slowpath`), lo que reduce la eficiencia.
3. Una menor utilización de la CPU, lo que limita el paralelismo y la capacidad de procesamiento.

<div id="how-the-resize-node-gets-split">
  ### Cómo se divide el nodo Resize
</div>

1. Se comprueba el número de flujos de salida para garantizar que la división pueda realizarse: los flujos de salida de cada procesador resultante de la división cumplen o superan el umbral `min_outstreams_per_resize_after_split`.
2. El nodo `Resize` se divide en nodos `Resize` más pequeños con el mismo número de puertos, y cada uno gestiona un subconjunto de flujos de entrada y de salida.
3. Cada grupo se procesa de forma independiente, lo que reduce la contención por bloqueos.

<div id="splitting-resize-node-with-arbitrary-inputsoutputs">
  ### División de nodos Resize con entradas/salidas arbitrarias
</div>

En algunos casos, cuando las entradas/salidas no son divisibles por el número de nodos `Resize` resultantes de la división, algunas entradas se conectan a `NullSource` y algunas salidas a `NullSink`. Esto permite realizar la división sin afectar al flujo general de datos.

<div id="purpose-of-the-setting">
  ### Propósito de la configuración
</div>

La configuración `min_outstreams_per_resize_after_split` garantiza que la división de los nodos `Resize` tenga sentido y evita crear muy pocos flujos, lo que podría provocar un procesamiento paralelo ineficiente. Al imponer un número mínimo de flujos de salida, esta configuración ayuda a mantener un equilibrio entre el paralelismo y la sobrecarga, lo que optimiza la ejecución de consultas en escenarios que implican la división y la fusión de flujos.

<div id="disabling-the-setting">
  ### Desactivar el ajuste
</div>

Para desactivar la división de los nodos `Resize`, establezca este ajuste en 0. Esto evita que los nodos `Resize` se dividan durante la generación del pipeline, lo que les permite conservar su estructura original sin subdividirse en nodos más pequeños.

<div id="min_table_rows_to_use_projection_index">
  ## min\_table\_rows\_to\_use\_projection\_index
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1000000"},{"label": "Nueva configuración"}]}]} />

Si el número estimado de filas que se leerán de la tabla es igual o superior a este umbral, ClickHouse intentará usar el índice de proyección durante la ejecución de la consulta.

<div id="mongodb_throw_on_unsupported_query">
  ## mongodb\_throw\_on\_unsupported\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "1"},{"label": "Nueva configuración."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Si está habilitada, las tablas de MongoDB devolverán un error cuando no se pueda generar una consulta de MongoDB. En caso contrario, ClickHouse lee la tabla completa y la procesa localmente. Esta opción no se aplica cuando 'allow\_experimental\_analyzer=0'.

<div id="move_all_conditions_to_prewhere">
  ## move\_all\_conditions\_to\_prewhere
</div>

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

Traslada todas las condiciones aplicables de WHERE a PREWHERE

<div id="move_primary_key_columns_to_end_of_prewhere">
  ## move\_primary\_key\_columns\_to\_end\_of\_prewhere
</div>

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

Mueve al final de la cadena AND las condiciones de PREWHERE que contienen columnas de la clave primaria. Es probable que estas condiciones ya se tengan en cuenta durante el análisis de la clave primaria y, por lo tanto, apenas contribuyan al filtrado de PREWHERE.

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

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

No añadir alias a la lista de expresiones de nivel superior al reescribir múltiples JOIN

<div id="mutations_execute_nondeterministic_on_initiator">
  ## mutations\_execute\_nondeterministic\_on\_initiator
</div>

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

Si es `true`, las funciones constantes no deterministas (p. ej., la función `now()`) se ejecutan en el iniciador y se reemplazan por literales en las consultas `UPDATE` y `DELETE`. Esto ayuda a mantener los datos sincronizados en las réplicas al ejecutar mutaciones con funciones constantes no deterministas. Valor predeterminado: `false`.

<div id="mutations_execute_subqueries_on_initiator">
  ## mutations\_execute\_subqueries\_on\_initiator
</div>

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

Si es `true`, las subconsultas escalares se ejecutan en el iniciador y se sustituyen por literales en las consultas `UPDATE` y `DELETE`. Valor predeterminado: `false`.

<div id="mutations_max_literal_size_to_replace">
  ## mutations\_max\_literal\_size\_to\_replace
</div>

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

El tamaño máximo, en bytes, del literal serializado que se puede reemplazar en las consultas `UPDATE` y `DELETE`. Solo surte efecto si al menos una de las dos opciones anteriores está habilitada. Valor predeterminado: 16384 (16 KiB).

<div id="mutations_sync">
  ## mutations\_sync
</div>

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

Permite ejecutar de forma síncrona las consultas `ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS` ([mutations](/es/reference/statements/alter#mutations)).

Valores posibles:

| Valor | Descripción                                                                                                                                                     |
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0`   | Las mutaciones se ejecutan de forma asíncrona.                                                                                                                  |
| `1`   | La consulta espera a que todas las mutaciones finalicen en el servidor actual.                                                                                  |
| `2`   | La consulta espera a que todas las mutaciones finalicen en todas las réplicas (si existen).                                                                     |
| `3`   | La consulta espera solo a las réplicas activas. Solo es compatible con `SharedMergeTree`. En `ReplicatedMergeTree`, se comporta igual que `mutations_sync = 2`. |

<div id="mysql_datatypes_support_level">
  ## mysql\_datatypes\_support\_level
</div>

<SettingsInfoBlock type="MySQLDataTypesSupport" default_value="decimal,datetime64,date2Date32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "decimal,datetime64,date2Date32"},{"label": "Habilita de forma predeterminada las correspondencias modernas de tipos de MySQL."}]}]} />

Define cómo los tipos de MySQL se convierten a los tipos correspondientes de ClickHouse. Es una lista separada por comas con cualquier combinación de `decimal`, `datetime64`, `date2Date32` o `date2String`. Todas las correspondencias modernas (`decimal`, `datetime64`, `date2Date32`) están habilitadas de forma predeterminada.

* `decimal`: convierte los tipos `NUMERIC` y `DECIMAL` a `Decimal` cuando la precisión lo permite.
* `datetime64`: convierte los tipos `DATETIME` y `TIMESTAMP` a `DateTime64` en lugar de `DateTime` cuando la precisión no es `0`.
* `date2Date32`: convierte `DATE` a `Date32` en lugar de `Date`. Tiene prioridad sobre `date2String`.
* `date2String`: convierte `DATE` a `String` en lugar de `Date`. `datetime64` lo sobrescribe.

<div id="mysql_map_fixed_string_to_text_in_show_columns">
  ## mysql\_map\_fixed\_string\_to\_text\_in\_show\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Reduce el esfuerzo de configuración necesario para conectar ClickHouse con herramientas de BI."}]}]} />

Cuando está habilitado, el tipo de dato [FixedString](/es/reference/data-types/fixedstring) de ClickHouse se mostrará como `TEXT` en [SHOW COLUMNS](/es/reference/statements/show#show_columns).

Solo surte efecto cuando la conexión se realiza a través del MySQL wire protocol.

* 0 - Usar `BLOB`.
* 1 - Usar `TEXT`.

<div id="mysql_map_string_to_text_in_show_columns">
  ## mysql\_map\_string\_to\_text\_in\_show\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Reduce la complejidad de configuración para conectar ClickHouse con herramientas de BI."}]}]} />

Cuando está habilitado, el tipo de datos [String](/es/reference/data-types/string) de ClickHouse se mostrará como `TEXT` en [SHOW COLUMNS](/es/reference/statements/show#show_columns).

Solo surte efecto cuando la conexión se realiza a través del MySQL wire protocol.

* 0 - Usar `BLOB`.
* 1 - Usar `TEXT`.

<div id="mysql_max_rows_to_insert">
  ## mysql\_max\_rows\_to\_insert
</div>

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

El número máximo de filas en la inserción por lotes del motor de almacenamiento MySQL

<div id="network_compression_method">
  ## network\_compression\_method
</div>

<SettingsInfoBlock type="String" default_value="LZ4" />

El codec para comprimir la comunicación entre cliente y servidor, y entre servidores.

Valores posibles:

* `NONE` — sin compresión.
* `LZ4` — usa el codec LZ4.
* `LZ4HC` — usa el codec LZ4HC.
* `ZSTD` — usa el codec ZSTD.

**Véase también**

* [network\_zstd\_compression\_level](#network_zstd_compression_level)

<div id="network_zstd_compression_level">
  ## network\_zstd\_compression\_level
</div>

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

Ajusta el nivel de compresión de ZSTD. Se usa solo cuando [network\_compression\_method](#network_compression_method) está configurado como `ZSTD`.

Valores posibles:

* Entero positivo del 1 al 15.

<div id="normalize_function_names">
  ## normalize\_function\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "Normaliza los nombres de las funciones a su forma canónica; esto era necesario para el enrutamiento de consultas de proyección"}]}]} />

Normaliza los nombres de las funciones a su forma canónica

<div id="number_of_mutations_to_delay">
  ## number\_of\_mutations\_to\_delay
</div>

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

Si la tabla con mutaciones contiene al menos esa cantidad de mutaciones sin finalizar, ralentiza artificialmente las mutaciones de la tabla. 0: deshabilitado

<div id="number_of_mutations_to_throw">
  ## number\_of\_mutations\_to\_throw
</div>

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

Si la tabla mutada contiene al menos esa cantidad de mutaciones sin finalizar, se genera la excepción 'Too many mutations ...'. 0 - deshabilitado

<div id="odbc_bridge_connection_pool_size">
  ## odbc\_bridge\_connection\_pool\_size
</div>

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

Tamaño del grupo de conexiones para cada cadena de configuración de conexión del ODBC bridge.

<div id="odbc_bridge_use_connection_pooling">
  ## odbc\_bridge\_use\_connection\_pooling
</div>

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

Usa un pool de conexiones en ODBC bridge. Si se establece en false, se crea una nueva conexión cada vez.

<div id="offset">
  ## offset
</div>

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

Establece el número de filas que se omiten antes de empezar a devolver filas de la consulta. Ajusta el desplazamiento establecido por la cláusula [OFFSET](/es/reference/statements/select/offset), de modo que ambos valores se sumen.

Valores posibles:

* 0 — No se omite ninguna fila.
* Entero positivo.

**Ejemplo**

Tabla de entrada:

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

Consulta:

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

Resultado:

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="opentelemetry_start_keeper_trace_probability">
  ## opentelemetry\_start\_keeper\_trace\_probability
</div>

<SettingsInfoBlock type="FloatAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "auto"},{"label": "Nueva configuración"}]}]} />

Probabilidad de iniciar una traza para una solicitud de ZooKeeper, tenga o no una traza principal.

Valores posibles:

* 'auto' - Equivale al ajuste opentelemetry\_start\_trace\_probability
* 0 — El trazado está deshabilitado
* 0 a 1 — Probabilidad (p. ej., 1.0 = siempre habilitado)

<div id="opentelemetry_start_trace_probability">
  ## opentelemetry\_start\_trace\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Establece la probabilidad de que ClickHouse pueda iniciar una traza para las consultas ejecutadas (si no se proporciona un [trace context](https://www.w3.org/TR/trace-context/) principal).

Valores posibles:

* 0 — La traza para todas las consultas ejecutadas está deshabilitada (si no se proporciona un trace context principal).
* Número de coma flotante positivo en el rango \[0..1]. Por ejemplo, si el valor de la configuración es `0,5`, ClickHouse puede iniciar una traza, en promedio, para la mitad de las consultas.
* 1 — La traza para todas las consultas ejecutadas está habilitada.

<div id="opentelemetry_trace_cpu_scheduling">
  ## opentelemetry\_trace\_cpu\_scheduling
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva opción de configuración para rastrear la funcionalidad `cpu_slot_preemption`."}]}]} />

Recopila spans de OpenTelemetry para la planificación preventiva de la CPU de la carga de trabajo.

<div id="opentelemetry_trace_processors">
  ## opentelemetry\_trace\_processors
</div>

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

Recopila spans de OpenTelemetry para los procesadores.

<div id="optimize_aggregation_in_order">
  ## optimize\_aggregation\_in\_order
</div>

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

Habilita la optimización de [GROUP BY](/es/reference/statements/select/group-by) en consultas [SELECT](/es/reference/statements/select) para agregar datos en el orden correspondiente en tablas [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree).

Valores posibles:

* 0 — la optimización de `GROUP BY` está deshabilitada.
* 1 — la optimización de `GROUP BY` está habilitada.

**Véase también**

* [optimización de GROUP BY](/es/reference/statements/select/group-by#group-by-optimization-depending-on-table-sorting-key)

<div id="optimize_aggregators_of_group_by_keys">
  ## optimize\_aggregators\_of\_group\_by\_keys
</div>

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

Elimina los agregadores min/max/any/anyLast de las claves de GROUP BY en la sección SELECT

<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": "Nueva configuración"}]}]} />

Propaga las comparaciones con constantes en cadenas de AND para mejorar la capacidad de filtrado. Admite los operadores `<`, `<=`, `>`, `>=`, `=` y sus combinaciones. Por ejemplo, `(a < b) AND (b < c) AND (c < 5)` pasaría a ser `(a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5)`.

<div id="optimize_append_index">
  ## optimize\_append\_index
</div>

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

Utilice [restricciones](/es/reference/statements/create/table#constraints) para añadir la condición del índice. El valor predeterminado es `false`.

Valores posibles:

* true, false

<div id="optimize_arithmetic_operations_in_aggregate_functions">
  ## optimize\_arithmetic\_operations\_in\_aggregate\_functions
</div>

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

Sacar las operaciones aritméticas de las funciones de agregación

<div id="optimize_const_name_size">
  ## optimize\_const\_name\_size
</div>

<SettingsInfoBlock type="Int64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "256"},{"label": "Reemplazar por un valor escalar y usar un hash como nombre para constantes grandes (el tamaño se estima por la longitud del nombre)"}]}]} />

Reemplazar por un valor escalar y usar un hash como nombre para constantes grandes (el tamaño se estima por la longitud del nombre).

Valores posibles:

* entero positivo - longitud máxima del nombre,
* 0 — siempre,
* entero negativo - nunca.

<div id="optimize_count_from_files">
  ## optimize\_count\_from\_files
</div>

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

Habilita o deshabilita la optimización para contar el número de filas en archivos con distintos formatos de entrada. Se aplica a las funciones de tabla/motores `file`/`s3`/`url`/`hdfs`/`azureBlobStorage`.

Valores posibles:

* 0 — Optimización deshabilitada.
* 1 — Optimización habilitada.

<div id="optimize_dictget_tuple_element">
  ## optimize\_dictget\_tuple\_element
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Reescribe tupleElement(dictGet(..., tuple_of_attrs, ...), N) como una única llamada a dictGet de un solo atributo."}]}]} />

Reescribe `tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2)` como `dictGet('dict', 'b', key)` para evitar obtener atributos de diccionario innecesarios. Admite acceso posicional (`.1`, `.2`, ...) y con nombre (`.b`), y también se aplica a `dictGetOrDefault` cuando el argumento por defecto es una tupla constante o una `tuple(...)` de constantes.

<div id="optimize_distinct_in_order">
  ## optimize\_distinct\_in\_order
</div>

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

Habilita la optimización de DISTINCT si algunas de las columnas de DISTINCT constituyen un prefijo de ordenación. Por ejemplo, un prefijo de la clave de ordenación en MergeTree o de la cláusula ORDER BY

<div id="optimize_distributed_group_by_sharding_key">
  ## optimize\_distributed\_group\_by\_sharding\_key
</div>

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

Optimiza las consultas `GROUP BY sharding_key` al evitar la costosa agregación en el servidor iniciador (lo que reduce el uso de memoria de la consulta en ese servidor).

Se admiten los siguientes tipos de consultas (y todas sus combinaciones):

* `SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...]`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x`

No se admiten los siguientes tipos de consultas (es posible que más adelante se añada compatibilidad para algunas de ellas):

* `SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS`
* `SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP`
* `SELECT ... GROUP BY sharding_key[, ...] WITH CUBE`
* `SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1`

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

Ver también:

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge)
* [distributed\_push\_down\_limit](#distributed_push_down_limit)
* [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards)

<Note>
  Por ahora, requiere `optimize_skip_unused_shards` (esto se debe a que en algún momento podría habilitarse de forma predeterminada, y solo funcionará correctamente si los datos se insertaron a través de una tabla Distributed; es decir, si los datos se distribuyen de acuerdo con `sharding_key`).
</Note>

<div id="optimize_dry_run_check_part">
  ## optimize\_dry\_run\_check\_part
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Cuando está activado, `OPTIMIZE ... DRY RUN` valida la parte fusionada resultante con `checkDataPart`. Si la comprobación falla, se lanza una excepción.

<div id="optimize_empty_string_comparisons">
  ## optimize\_empty\_string\_comparisons
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Convierte expresiones como col = '' o '' = col en empty(col), y col != '' o '' != col en notEmpty(col),
solo cuando col es de tipo String o FixedString.

<div id="optimize_extract_common_expressions">
  ## optimize\_extract\_common\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Optimiza las expresiones WHERE, PREWHERE, ON, HAVING y QUALIFY extrayendo expresiones comunes a partir de una disyunción de conjunciones."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "Introduce una configuración para optimizar las expresiones WHERE, PREWHERE, ON, HAVING y QUALIFY extrayendo expresiones comunes a partir de una disyunción de conjunciones."}]}]} />

Permite extraer expresiones comunes de disyunciones en expresiones WHERE, PREWHERE, ON, HAVING y QUALIFY. Una expresión lógica como `(A AND B) OR (A AND C)` se puede reescribir como `A AND (B OR C)`, lo que puede ayudar a aprovechar:

* índices en expresiones de filtrado simples
* la optimización de CROSS JOIN a INNER JOIN

<div id="optimize_functions_to_subcolumns">
  ## optimize\_functions\_to\_subcolumns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "Configuración habilitada de forma predeterminada"}]}]} />

Habilita o deshabilita la optimización convirtiendo algunas funciones para que lean subcolumnas. Esto reduce la cantidad de datos que se deben leer.

Estas funciones se pueden transformar:

* [length](/es/reference/functions/regular-functions/array-functions#length) para leer la subcolumna [size0](/es/reference/data-types/array#array-size).
* [empty](/es/reference/functions/regular-functions/array-functions#empty) para leer la subcolumna [size0](/es/reference/data-types/array#array-size).
* [notEmpty](/es/reference/functions/regular-functions/array-functions#notEmpty) para leer la subcolumna [size0](/es/reference/data-types/array#array-size).
* [isNull](/es/reference/functions/regular-functions/functions-for-nulls#isNull) para leer la subcolumna [null](/es/reference/data-types/nullable#finding-null).
* [isNotNull](/es/reference/functions/regular-functions/functions-for-nulls#isNotNull) para leer la subcolumna [null](/es/reference/data-types/nullable#finding-null).
* [count](/es/reference/functions/aggregate-functions/count) para leer la subcolumna [null](/es/reference/data-types/nullable#finding-null).
* [mapKeys](/es/reference/functions/regular-functions/tuple-map-functions#mapKeys) para leer la subcolumna [keys](/es/reference/data-types/map#reading-subcolumns-of-map).
* [mapValues](/es/reference/functions/regular-functions/tuple-map-functions#mapValues) para leer la subcolumna [values](/es/reference/data-types/map#reading-subcolumns-of-map).

Posibles valores:

* 0 — Optimización deshabilitada.
* 1 — Optimización habilitada.

<div id="optimize_group_by_constant_keys">
  ## optimize\_group\_by\_constant\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "Optimización predeterminada de GROUP BY con claves constantes"}]}]} />

Optimiza GROUP BY cuando todas las claves del bloque son constantes

<div id="optimize_group_by_function_keys">
  ## optimize\_group\_by\_function\_keys
</div>

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

Elimina las funciones de otras claves en la cláusula GROUP BY

<div id="optimize_if_chain_to_multiif">
  ## optimize\_if\_chain\_to\_multiif
</div>

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

Reemplaza las cadenas de `if(cond1, then1, if(cond2, ...))` por `multiIf`. Actualmente no resulta beneficioso para los tipos numéricos.

<div id="optimize_if_transform_strings_to_enum">
  ## optimize\_if\_transform\_strings\_to\_enum
</div>

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

Reemplaza por enum los argumentos de tipo String en If y Transform. Está deshabilitado de forma predeterminada porque podría provocar un cambio inconsistente en una consulta distribuida, lo que haría que fallara.

<div id="optimize_injective_functions_in_group_by">
  ## optimize\_injective\_functions\_in\_group\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "Sustituir las funciones inyectivas por sus argumentos en la cláusula GROUP BY en el analizador"}]}]} />

Sustituye las funciones inyectivas por sus argumentos en la cláusula GROUP BY

<div id="optimize_injective_functions_inside_uniq">
  ## optimize\_injective\_functions\_inside\_uniq
</div>

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

Elimina las funciones inyectivas de un solo argumento dentro de las funciones uniq\*().

<div id="optimize_inverse_dictionary_lookup">
  ## optimize\_inverse\_dictionary\_lookup
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Evita las búsquedas inversas repetidas en el diccionario mediante búsquedas más rápidas en un conjunto precalculado de posibles valores de clave.

<div id="optimize_min_equality_disjunction_chain_length">
  ## optimize\_min\_equality\_disjunction\_chain\_length
</div>

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

La longitud mínima de la expresión `expr = x1 OR ... expr = xN` para la optimización

<div id="optimize_min_inequality_conjunction_chain_length">
  ## optimize\_min\_inequality\_conjunction\_chain\_length
</div>

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

La longitud mínima de la expresión `expr <> x1 AND ... expr <> xN` para la optimización

<div id="optimize_move_to_prewhere">
  ## optimize\_move\_to\_prewhere
</div>

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

Activa o desactiva la optimización automática de [PREWHERE](/es/reference/statements/select/prewhere) en las consultas [SELECT](/es/reference/statements/select).

Solo funciona con tablas [\*MergeTree](/es/reference/engines/table-engines/mergetree-family).

Posibles valores:

* 0 — La optimización automática de `PREWHERE` está desactivada.
* 1 — La optimización automática de `PREWHERE` está activada.

<div id="optimize_move_to_prewhere_if_final">
  ## optimize\_move\_to\_prewhere\_if\_final
</div>

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

Habilita o deshabilita la optimización automática de [PREWHERE](/es/reference/statements/select/prewhere) en las consultas [SELECT](/es/reference/statements/select) con el modificador [FINAL](/es/reference/statements/select/from#final-modifier).

Solo funciona con tablas [\*MergeTree](/es/reference/engines/table-engines/mergetree-family).

Valores posibles:

* 0 — La optimización automática de `PREWHERE` en las consultas `SELECT` con el modificador `FINAL` está deshabilitada.
* 1 — La optimización automática de `PREWHERE` en las consultas `SELECT` con el modificador `FINAL` está habilitada.

**Véase también**

* La configuración [optimize\_move\_to\_prewhere](#optimize_move_to_prewhere)

<div id="optimize_multiif_to_if">
  ## optimize\_multiif\_to\_if
</div>

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

Sustituye 'multiIf' con una sola condición por 'if'.

<div id="optimize_normalize_count_variants">
  ## optimize\_normalize\_count\_variants
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "Reescribe como count() las funciones de agregación semánticamente equivalentes a count() de forma predeterminada"}]}]} />

Reescribe como count() las funciones de agregación semánticamente equivalentes a count().

<div id="optimize_on_insert">
  ## optimize\_on\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "Habilita la optimización de datos en INSERT de forma predeterminada para ofrecer una mejor experiencia de usuario"}]}]} />

Habilita o deshabilita la transformación de datos antes de la inserción, como si se hubiera realizado una combinación en este bloque (según el motor de tabla).

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

**Ejemplo**

La diferencia entre habilitado y deshabilitado:

Consulta:

```sql theme={null}
SET optimize_on_insert = 1;

CREATE TABLE test1 (`FirstTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY FirstTable;

INSERT INTO test1 SELECT number % 2 FROM numbers(5);

SELECT * FROM test1;

SET optimize_on_insert = 0;

CREATE TABLE test2 (`SecondTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY SecondTable;

INSERT INTO test2 SELECT number % 2 FROM numbers(5);

SELECT * FROM test2;
```

Resultado:

```text theme={null}
┌─FirstTable─┐
│          0 │
│          1 │
└────────────┘

┌─SecondTable─┐
│           0 │
│           0 │
│           0 │
│           1 │
│           1 │
└─────────────┘
```

Ten en cuenta que esta configuración afecta al comportamiento de la [vista materializada](/es/reference/statements/create/view#materialized-view).

<div id="optimize_or_like_chain">
  ## optimize\_or\_like\_chain
</div>

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

Optimiza varias expresiones OR LIKE en multiMatchAny. Esta optimización no debería estar habilitada de forma predeterminada, porque en algunos casos dificulta el análisis de índices.

<div id="optimize_qbit_distance_function_reads">
  ## optimize\_qbit\_distance\_function\_reads
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Reemplaza las funciones de distancia del tipo de datos `QBit` por otras equivalentes que solo leen del almacenamiento las columnas necesarias para el cálculo.

<div id="optimize_read_in_order">
  ## optimize\_read\_in\_order
</div>

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

Habilita la optimización de [ORDER BY](/es/reference/statements/select/order-by#optimization-of-data-reading) en las consultas [SELECT](/es/reference/statements/select) para la lectura de datos de tablas [MergeTree](/es/reference/engines/table-engines/mergetree-family/mergetree).

Valores posibles:

* 0 — la optimización de `ORDER BY` está deshabilitada.
* 1 — la optimización de `ORDER BY` está habilitada.

**Véase también**

* [Cláusula ORDER BY](/es/reference/statements/select/order-by#optimization-of-data-reading)

<div id="optimize_redundant_functions_in_order_by">
  ## optimize\_redundant\_functions\_in\_order\_by
</div>

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

Elimina las funciones de ORDER BY si su argumento también aparece en ORDER BY

<div id="optimize_respect_aliases">
  ## optimize\_respect\_aliases
</div>

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

Si se establece en true, respetará los alias en WHERE/GROUP BY/ORDER BY, lo que ayudará a la poda de particiones/índices secundarios/optimize\_aggregation\_in\_order/optimize\_read\_in\_order/optimize\_trivial\_count

<div id="optimize_rewrite_aggregate_function_with_if">
  ## optimize\_rewrite\_aggregate\_function\_with\_if
</div>

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

Reescribe las funciones de agregación cuyo argumento es una expresión `if` cuando sean lógicamente equivalentes.
Por ejemplo, `avg(if(cond, col, null))` se puede reescribir como `avgOrNullIf(cond, col)`. Esto puede mejorar el rendimiento.

<Note>
  Solo se admite con el analizador (`enable_analyzer = 1`).
</Note>

<div id="optimize_rewrite_array_exists_to_has">
  ## optimize\_rewrite\_array\_exists\_to\_has
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Habilita de forma predeterminada la optimización de reescritura de arrayExists a has, ahora que la compatibilidad de tipos se comprueba antes de reescribir."}]}]} />

Reescribe las funciones arrayExists() como has() cuando sean lógicamente equivalentes. Por ejemplo, arrayExists(x -> x = 1, arr) puede reescribirse como has(arr, 1)

<div id="optimize_rewrite_like_perfect_affix">
  ## optimize\_rewrite\_like\_perfect\_affix
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "Nuevo ajuste"}]}]} />

Reescribe las expresiones LIKE con un prefijo o sufijo exacto (p. ej., `col LIKE 'ClickHouse%'`) como funciones startsWith o endsWith (p. ej., `startsWith(col, 'ClickHouse')`).

<div id="optimize_rewrite_regexp_functions">
  ## optimize\_rewrite\_regexp\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Reescribe las funciones relacionadas con expresiones regulares para convertirlas en formas más simples y eficientes

<div id="optimize_rewrite_sum_if_to_count_if">
  ## optimize\_rewrite\_sum\_if\_to\_count\_if
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Solo disponible para el analyzer, donde funciona correctamente"}]}]} />

Reescribe las funciones sumIf() y sum(if()) como countIf() cuando son lógicamente equivalentes

<div id="optimize_skip_merged_partitions">
  ## optimize\_skip\_merged\_partitions
</div>

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

Habilita o deshabilita la optimización para la consulta [OPTIMIZE TABLE ... FINAL](/es/reference/statements/optimize) si solo hay una parte con nivel > 0 y no tiene un TTL vencido.

* `OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1`

De forma predeterminada, la consulta `OPTIMIZE TABLE ... FINAL` reescribe esa parte aunque solo haya una única parte.

Posibles valores:

* 1 - Habilita la optimización.
* 0 - Deshabilita la optimización.

<div id="optimize_skip_unused_shards">
  ## optimize\_skip\_unused\_shards
</div>

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

Habilita o deshabilita la omisión de segmentos no utilizados para las consultas [SELECT](/es/reference/statements/select) que tienen una condición sobre la clave de segmentación en `WHERE/PREWHERE`, y activa optimizaciones relacionadas para las consultas distribuidas (por ejemplo, la agregación por clave de segmentación).

<Note>
  Se asume que los datos se distribuyen por la clave de segmentación; de lo contrario, una consulta devuelve un resultado incorrecto.
</Note>

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="optimize_skip_unused_shards_limit">
  ## optimize\_skip\_unused\_shards\_limit
</div>

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

Límite del número de valores de la clave de sharding; desactiva `optimize_skip_unused_shards` si se alcanza este límite.

Demasiados valores pueden requerir un procesamiento considerable, mientras que el beneficio es dudoso, ya que, si tienes una gran cantidad de valores en `IN (...)`, lo más probable es que la consulta se envíe a todos los segmentos de todos modos.

<div id="optimize_skip_unused_shards_nesting">
  ## optimize\_skip\_unused\_shards\_nesting
</div>

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

Controla el nivel de anidamiento de la consulta distribuida en el que depende [`optimize_skip_unused_shards`](#optimize_skip_unused_shards) (por lo tanto, sigue requiriendo [`optimize_skip_unused_shards`](#optimize_skip_unused_shards)); es el caso en el que una tabla `Distributed` consulta otra tabla `Distributed`.

Valores posibles:

* 0 — Deshabilitado; `optimize_skip_unused_shards` funciona siempre.
* 1 — Habilita `optimize_skip_unused_shards` solo para el primer nivel.
* 2 — Habilita `optimize_skip_unused_shards` hasta el segundo nivel.

<div id="optimize_skip_unused_shards_rewrite_in">
  ## optimize\_skip\_unused\_shards\_rewrite\_in
</div>

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

Reescribe `IN` en la consulta para los segmentos remotos a fin de excluir los valores que no pertenecen al segmento (requiere optimize\_skip\_unused\_shards).

Valores posibles:

* 0 — Desactivado.
* 1 — Activado.

<div id="optimize_sorting_by_input_stream_properties">
  ## optimize\_sorting\_by\_input\_stream\_properties
</div>

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

Optimiza la ordenación en función de las propiedades de ordenación del flujo de entrada

<div id="optimize_substitute_columns">
  ## optimize\_substitute\_columns
</div>

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

Use [restricciones](/es/reference/statements/create/table#constraints) para sustituir columnas. El valor predeterminado es `false`.

Valores posibles:

* true, false

<div id="optimize_syntax_fuse_functions">
  ## optimize\_syntax\_fuse\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "La optimización está lista para producción"}]}]} />

Permite fusionar funciones de agregación con el mismo argumento. Reescribe una consulta que contiene al menos dos funciones de agregación, [sum](/es/reference/functions/aggregate-functions/sum), [count](/es/reference/functions/aggregate-functions/count) o [avg](/es/reference/functions/aggregate-functions/avg), con el mismo argumento, como [sumCount](/es/reference/functions/aggregate-functions/sumCount).

Valores posibles:

* 0 — Las funciones con el mismo argumento no se fusionan.
* 1 — Las funciones con el mismo argumento se fusionan.

**Ejemplo**

Consulta:

```sql theme={null}
CREATE TABLE fuse_tbl(a Int8, b Int8) Engine = Log;
SET optimize_syntax_fuse_functions = 1;
EXPLAIN SYNTAX run_query_tree_passes = 1 SELECT sum(a), sum(b), count(b), avg(b) from fuse_tbl FORMAT TSV;
```

Resultado:

```text theme={null}
SELECT
    sum(__table1.a) AS `sum(a)`,
    tupleElement(sumCount(__table1.b), 1) AS `sum(b)`,
    tupleElement(sumCount(__table1.b), 2) AS `count(b)`,
    divide(tupleElement(sumCount(__table1.b), 1), toFloat64(tupleElement(sumCount(__table1.b), 2))) AS `avg(b)`
FROM default.fuse_tbl AS __table1
```

<div id="optimize_throw_if_noop">
  ## optimize\_throw\_if\_noop
</div>

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

Habilita o deshabilita el lanzamiento de una excepción si una consulta [OPTIMIZE](/es/reference/statements/optimize) no realizó ningún merge.

De forma predeterminada, `OPTIMIZE` finaliza correctamente aunque no haga nada. Esta configuración permite distinguir estas situaciones y obtener el motivo en un mensaje de excepción.

Valores posibles:

* 1 — El lanzamiento de una excepción está habilitado.
* 0 — El lanzamiento de una excepción está deshabilitado.

<div id="optimize_time_filter_with_preimage">
  ## optimize\_time\_filter\_with\_preimage
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Optimiza los predicados de Date y DateTime convirtiendo las funciones en comparaciones equivalentes sin necesidad de conversiones (p. ej., toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')"}]}]} />

Optimiza los predicados de Date y DateTime convirtiendo las funciones en comparaciones equivalentes sin necesidad de conversiones (p. ej., `toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31'`)

<div id="optimize_trivial_approximate_count_query">
  ## optimize\_trivial\_approximate\_count\_query
</div>

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

Usa un valor aproximado para la optimización del recuento trivial en almacenamientos que admiten este tipo de estimación, por ejemplo, EmbeddedRocksDB.

Valores posibles:

* 0 — Optimización deshabilitada.
  * 1 — Optimización habilitada.

<div id="optimize_trivial_count_query">
  ## optimize\_trivial\_count\_query
</div>

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

Habilita o deshabilita la optimización de la consulta trivial `SELECT count() FROM table` a partir de los metadatos de MergeTree. Si necesita usar seguridad a nivel de fila, deshabilite este ajuste.

Valores posibles:

* 0 — Optimización deshabilitada.
  * 1 — Optimización habilitada.

Véase también:

* [optimize\_functions\_to\_subcolumns](#optimize_functions_to_subcolumns)

<div id="optimize_trivial_group_by_limit_query">
  ## optimize\_trivial\_group\_by\_limit\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración que limita la agregación a un máximo de LIMIT claves distintas para las consultas `SELECT key_expr FROM t GROUP BY key_expr LIMIT n`."}]}]} />

Habilita o deshabilita la optimización de una consulta trivial `SELECT key_expr FROM table GROUP BY key_expr LIMIT n` (sin funciones de agregación en la proyección, sin cláusulas `HAVING`/`ORDER BY`/`LIMIT BY`/window y sin modificadores de `GROUP BY`) estableciendo `max_rows_to_group_by = n + offset` con `group_by_overflow_mode = 'any'`. La agregación se detiene en cuanto se obtienen `n + offset` claves distintas.

La optimización se omite cuando el usuario ha establecido explícitamente `group_by_overflow_mode` en un valor distinto de `any` (para preservar la semántica explícita de `throw`/`break`) y cuando el usuario ya ha establecido un `max_rows_to_group_by` más restrictivo (la optimización sería un no-op).

Valores posibles:

* 0 — Optimización deshabilitada.
  * 1 — Optimización habilitada.

<div id="optimize_trivial_insert_select">
  ## optimize\_trivial\_insert\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "La optimización no tiene sentido en muchos casos."}]}]} />

Optimiza la consulta trivial 'INSERT INTO table SELECT ... FROM TABLES'

<div id="optimize_truncate_order_by_after_group_by_keys">
  ## optimize\_truncate\_order\_by\_after\_group\_by\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Elimina los elementos finales de ORDER BY una vez que todas las claves de GROUP BY queden cubiertas por el prefijo de ORDER BY."}]}]} />

Elimina los elementos finales de ORDER BY una vez que todas las claves de GROUP BY queden cubiertas por el prefijo de ORDER BY.

<div id="optimize_uniq_to_count">
  ## optimize\_uniq\_to\_count
</div>

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

Reescribe `uniq` y sus variantes (excepto `uniqUpTo`) como `count` si la subconsulta incluye `distinct` o una cláusula `group by`.

<div id="optimize_use_implicit_projections">
  ## optimize\_use\_implicit\_projections
</div>

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

Elegir automáticamente proyecciones implícitas para ejecutar la consulta SELECT

<div id="optimize_use_projection_filtering">
  ## optimize\_use\_projection\_filtering
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite usar proyecciones para filtrar rangos de partes incluso cuando no se seleccionan proyecciones para ejecutar una consulta SELECT.

<div id="optimize_use_projections">
  ## optimize\_use\_projections
</div>

**Alias**: `allow_experimental_projection_optimization`

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

Activa o desactiva la optimización de [proyecciones](/es/reference/engines/table-engines/mergetree-family/mergetree#projections) al procesar consultas `SELECT`.

Valores posibles:

* 0 — Optimización de proyecciones desactivada.
* 1 — Optimización de proyecciones activada.

<div id="optimize_using_constraints">
  ## optimize\_using\_constraints
</div>

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

Utilice [restricciones](/es/reference/statements/create/table#constraints) para optimizar las consultas. El valor predeterminado es `false`.

Valores posibles:

* true, false

<div id="os_threads_nice_value_materialized_view">
  ## os\_threads\_nice\_value\_materialized\_view
</div>

<SettingsInfoBlock type="Int32" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Valor nice de Linux para los hilos de la vista materializada. Los valores más bajos implican una mayor prioridad de CPU.

Requiere la capacidad CAP\_SYS\_NICE; de lo contrario, no hace nada.

Posibles valores: -20 a 19.

<div id="os_threads_nice_value_query">
  ## os\_threads\_nice\_value\_query
</div>

**Alias**: `os_thread_priority`

<SettingsInfoBlock type="Int32" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Valor nice de Linux para los hilos de procesamiento de consultas. Los valores más bajos implican una mayor prioridad de CPU.

Requiere la capability CAP\_SYS\_NICE; de lo contrario, no tiene efecto.

Valores posibles: -20 a 19.

<div id="page_cache_block_size">
  ## page\_cache\_block\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1048576"},{"label": "Esta configuración pasó a poder ajustarse por consulta."}]}]} />

Tamaño de los fragmentos de archivo que se almacenan en la caché de páginas en espacio de usuario, en bytes. Todas las lecturas que pasen por la caché se redondearán hacia arriba al múltiplo más próximo de este tamaño.

Esta configuración puede ajustarse por consulta, pero las entradas de caché con distintos tamaños de bloque no pueden reutilizarse. Cambiar esta configuración invalida en la práctica las entradas existentes en la caché.

Un valor más alto, como 1 MiB, es adecuado para consultas de alto rendimiento, y un valor más bajo, como 64 KiB, es adecuado para consultas puntuales de baja latencia.

<div id="page_cache_inject_eviction">
  ## page\_cache\_inject\_eviction
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Se añadió la caché de páginas en espacio de usuario"}]}]} />

La caché de páginas en espacio de usuario a veces invalidará algunas páginas de forma aleatoria. Está pensado para pruebas.

<div id="page_cache_lookahead_blocks">
  ## page\_cache\_lookahead\_blocks
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "16"},{"label": "Esta configuración pasó a poder ajustarse por consulta."}]}]} />

Si se produce un fallo en la caché de páginas en espacio de usuario, lee de una sola vez hasta esta cantidad de bloques consecutivos desde el almacenamiento subyacente, siempre que tampoco estén en la caché. Cada bloque tiene `page_cache_block_size` bytes.

Un valor más alto es beneficioso para consultas de alto rendimiento, mientras que las consultas puntuales de baja latencia funcionan mejor sin lectura anticipada.

<div id="page_cache_max_coalesced_bytes">
  ## page\_cache\_max\_coalesced\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "16777216"},{"label": "Nueva configuración para limitar el tamaño de una única lectura combinada que se usa para poblar la caché de páginas en espacio de usuario cuando se produce un fallo de caché."}]}]} />

Cuando `readBigAt` puebla la caché de páginas en espacio de usuario, los fallos de caché consecutivos se combinan en una sola lectura desde el almacenamiento subyacente. Esta configuración limita en bytes el tamaño de una lectura combinada; las secuencias de fallos más largas se dividen en varias lecturas. Limita el uso transitorio de memoria del búfer temporal durante lecturas en frío en paralelo.

Un valor más alto reduce el número de solicitudes HTTP en los escaneos en frío sobre almacenamiento de objetos; un valor más bajo reduce el pico de memoria transitoria.

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "-1"},{"label": "Nueva configuración."}]}]} />

Lectura dirigida de snapshots a nivel de consulta para el modo incremental de Paimon. Cuando es >0, el lector solo recuperará el delta
del snapshot\_id especificado sin avanzar el watermark confirmado.
Predeterminado: -1 (deshabilitado)

<div id="parallel_distributed_insert_select">
  ## parallel\_distributed\_insert\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "2"},{"label": "Habilita de forma predeterminada `parallel distributed insert select`"}]}]} />

Habilita la consulta distribuida `INSERT ... SELECT` en paralelo.

Si ejecutamos consultas `INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b`, y ambas tablas usan el mismo clúster, y ambas tablas son [replicadas](/es/reference/engines/table-engines/mergetree-family/replication) o no replicadas, esta consulta se procesa localmente en cada segmento.

Posibles valores:

* `0` — Deshabilitado.
* `1` — `SELECT` se ejecutará en cada segmento desde la tabla subyacente del motor Distributed.
* `2` — `SELECT` e `INSERT` se ejecutarán en cada segmento desde/hacia la tabla subyacente del motor Distributed.

Desde la versión 25.4, `INSERT ... SELECT` desde un origen `ReplicatedMergeTree` o `SharedMergeTree` también puede paralelizarse entre réplicas. Para habilitarlo:

* `parallel_distributed_insert_select = 2`
* `enable_parallel_replicas = 1`

<div id="parallel_hash_join_threshold">
  ## parallel\_hash\_join\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "100000"},{"label": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración"}]}, {"id": "row-3","items": [{"label": "25.3"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Cuando se aplica un algoritmo de join basado en hash, este umbral ayuda a decidir entre usar `hash` y `parallel_hash` (solo si se dispone de una estimación del tamaño de la tabla de la derecha).
El primero se usa cuando sabemos que el tamaño de la tabla de la derecha está por debajo del umbral.

<div id="parallel_non_joined_rows_processing">
  ## parallel\_non\_joined\_rows\_processing
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Nueva configuración para habilitar el procesamiento en paralelo de filas no emparejadas en JOIN RIGHT/FULL con `parallel_hash`."}]}]} />

Permite que varios hilos procesen en paralelo las filas no emparejadas de la tabla derecha durante los JOIN RIGHT y FULL.
Esto puede acelerar la fase de filas no emparejadas al usar el algoritmo de join `parallel_hash` con tablas grandes.
Cuando está deshabilitado, las filas no emparejadas se procesan con un solo hilo.

<div id="parallel_replica_offset">
  ## parallel\_replica\_offset
</div>

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

Esta configuración es interna, no debe usarse directamente y representa un detalle de implementación del modo de 'réplicas paralelas'. El servidor iniciador establecerá automáticamente esta configuración, para las consultas distribuidas, con el índice de la réplica que participa en el procesamiento de la consulta entre las réplicas paralelas.

<div id="parallel_replicas_allow_in_with_subquery">
  ## parallel\_replicas\_allow\_in\_with\_subquery
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Si es true, la subconsulta de IN se ejecutará en cada réplica follower"}]}]} />

Si es true, la subconsulta de IN se ejecutará en cada réplica follower.

<div id="parallel_replicas_allow_materialized_views">
  ## parallel\_replicas\_allow\_materialized\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Permitir el uso de vistas materializadas con réplicas paralelas"}]}]} />

Permitir el uso de vistas materializadas con réplicas paralelas

<div id="parallel_replicas_allow_view_over_mergetree">
  ## parallel\_replicas\_allow\_view\_over\_mergetree
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite que las réplicas paralelas ejecuten la consulta externa de una vista simple sobre tablas `MergeTree` (en lugar de la consulta interna de la vista), lo que mejora la paralelización entre nodos. También se aplica a las vistas `UNION ALL` cuyas ramas leen cada una de una tabla `MergeTree` distinta.

<div id="parallel_replicas_connect_timeout_ms">
  ## parallel\_replicas\_connect\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="300" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "300"},{"label": "Tiempo de espera de conexión independiente para consultas con réplicas paralelas"}]}]} />

El tiempo de espera en milisegundos para conectarse a una réplica remota durante la ejecución de consultas con réplicas paralelas. Si el tiempo de espera vence, la réplica correspondiente no se utiliza para la ejecució

<div id="parallel_replicas_count">
  ## parallel\_replicas\_count
</div>

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

Esta es una configuración interna que no debe usarse directamente y representa un detalle de implementación del modo de 'réplicas en paralelo'. El servidor iniciador configurará automáticamente esta opción para las consultas distribuidas con el número de réplicas en paralelo que participan en el procesamiento de la consulta.

<div id="parallel_replicas_custom_key">
  ## parallel\_replicas\_custom\_key
</div>

Una expresión entera arbitraria que puede utilizarse para dividir el trabajo entre réplicas de una tabla específica.
El valor puede ser cualquier expresión entera.

Se prefieren las expresiones simples que usan claves primarias.

Si la configuración se utiliza en un clúster que consta de un solo segmento con varias réplicas, esas réplicas se convertirán en segmentos virtuales.
De lo contrario, se comportará igual que con la clave `SAMPLE`: usará varias réplicas de cada segmento.

<div id="parallel_replicas_custom_key_range_lower">
  ## parallel\_replicas\_custom\_key\_range\_lower
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Se añaden ajustes para controlar el filtro de rango al usar réplicas paralelas con segmentos dinámicos"}]}]} />

Permite que el tipo de filtro `range` divida el trabajo de manera uniforme entre las réplicas según el rango personalizado `[parallel_replicas_custom_key_range_lower, INT_MAX]`.

Cuando se usa junto con [parallel\_replicas\_custom\_key\_range\_upper](#parallel_replicas_custom_key_range_upper), permite que el filtro divida de manera uniforme el trabajo entre las réplicas para el rango `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Nota: Esta configuración no hace que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el rango `[0, INT_MAX]` para su procesamiento en paralelo.

<div id="parallel_replicas_custom_key_range_upper">
  ## parallel\_replicas\_custom\_key\_range\_upper
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Se añaden configuraciones para controlar el filtro de rango al usar réplicas paralelas con segmentos dinámicos. Un valor de 0 desactiva el límite superior"}]}]} />

Permite que el tipo de filtro `range` divida el trabajo de manera uniforme entre las réplicas en función del rango personalizado `[0, parallel_replicas_custom_key_range_upper]`. Un valor de 0 desactiva el límite superior y lo establece en el valor máximo de la expresión de clave personalizada.

Cuando se usa junto con [parallel\_replicas\_custom\_key\_range\_lower](#parallel_replicas_custom_key_range_lower), permite que el filtro divida uniformemente el trabajo entre las réplicas para el rango `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Nota: esta configuración no hará que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el intervalo `[0, INT_MAX]` para el procesamiento paralelo

<div id="parallel_replicas_filter_pushdown">
  ## parallel\_replicas\_filter\_pushdown
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite aplicar pushdown de filtros en la parte de la consulta que ejecutan las réplicas paralelas

<div id="parallel_replicas_for_cluster_engines">
  ## parallel\_replicas\_for\_cluster\_engines
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Reemplaza los motores de las funciones de tabla por sus alternativas -Cluster

<div id="parallel_replicas_for_non_replicated_merge_tree">
  ## parallel\_replicas\_for\_non\_replicated\_merge\_tree
</div>

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

Si es true, ClickHouse también usará el algoritmo de réplicas paralelas para las tablas MergeTree no replicadas

<div id="parallel_replicas_index_analysis_only_on_coordinator">
  ## parallel\_replicas\_index\_analysis\_only\_on\_coordinator
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "El análisis del índice se realiza solo en la réplica coordinadora y se omite en las demás réplicas. Solo surte efecto con parallel_replicas_local_plan habilitado"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "El análisis del índice se realiza solo en la réplica coordinadora y se omite en las demás réplicas. Solo surte efecto con parallel_replicas_local_plan habilitado"}]}]} />

El análisis del índice se realiza solo en la réplica coordinadora y se omite en las demás réplicas. Solo surte efecto con parallel\_replicas\_local\_pla

<div id="parallel_replicas_insert_select_local_pipeline">
  ## parallel\_replicas\_insert\_select\_local\_pipeline
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Usar un pipeline local durante un INSERT SELECT distribuido con réplicas paralelas. Actualmente está deshabilitado debido a problemas de rendimiento"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Usar un pipeline local durante un INSERT SELECT distribuido con réplicas paralelas. Actualmente está deshabilitado debido a problemas de rendimiento"}]}]} />

Usar un pipeline local durante un INSERT SELECT distribuido con réplicas paralelas

<div id="parallel_replicas_local_plan">
  ## parallel\_replicas\_local\_plan
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "1"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}]} />

Construye el plan local para la réplica local

<div id="parallel_replicas_mark_segment_size">
  ## parallel\_replicas\_mark\_segment\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "El valor de esta configuración ahora se determina automáticamente"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "128"},{"label": "Se añade una nueva configuración para controlar el tamaño del segmento en la nueva implementación del coordinador de réplicas paralelas"}]}]} />

Las partes se dividen virtualmente en segmentos para distribuirlas entre las réplicas durante la lectura en paralelo. Esta configuración controla el tamaño de estos segmentos. No se recomienda cambiarla hasta estar absolutamente seguro de lo que se está haciendo. El valor debe estar en el rango \[128; 16384]

<div id="parallel_replicas_min_number_of_rows_per_replica">
  ## parallel\_replicas\_min\_number\_of\_rows\_per\_replica
</div>

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

Limita el número de réplicas utilizadas en una consulta a (filas estimadas que se van a leer / min\_number\_of\_rows\_per\_replica). El máximo sigue estando limitado por 'max\_parallel\_replicas'

<div id="parallel_replicas_mode">
  ## parallel\_replicas\_mode
</div>

<SettingsInfoBlock type="ParallelReplicasMode" default_value="read_tasks" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "read_tasks"},{"label": "Esta configuración se introdujo como parte del proceso para llevar la funcionalidad de réplicas paralelas a Beta"}]}]} />

Tipo de filtro que se usará con la clave personalizada para las réplicas paralelas. default - usa la operación de módulo sobre la clave personalizada, range - usa un filtro de rango sobre la clave personalizada utilizando todos los valores posibles del tipo de valor de la clave personalizada.

<div id="parallel_replicas_only_with_analyzer">
  ## parallel\_replicas\_only\_with\_analyzer
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Las réplicas paralelas solo son compatibles con el analizador habilitado"}]}]} />

El analizador debe estar habilitado para usar réplicas paralelas. Si el analizador está deshabilitado, la ejecución de la consulta recurre a la ejecución local, incluso si la lectura paralela desde réplicas está habilitada. No se admite usar réplicas paralelas sin el analizador habilitado

<div id="parallel_replicas_prefer_local_join">
  ## parallel\_replicas\_prefer\_local\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Si es true, JOIN puede ejecutarse con el algoritmo de réplicas paralelas y todos los motores de almacenamiento de la parte derecha del JOIN son *MergeTree, se usará JOIN local en lugar de GLOBAL JOIN."}]}]} />

Si es true, JOIN puede ejecutarse con el algoritmo de réplicas paralelas y todos los motores de almacenamiento de la parte derecha del JOIN son \*MergeTree, se usará JOIN local en lugar de GLOBAL JOIN.

<div id="parallel_replicas_prefer_local_replica">
  ## parallel\_replicas\_prefer\_local\_replica
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración. Cuando está deshabilitada, las réplicas para la lectura en paralelo se seleccionan únicamente mediante el algoritmo de balanceo de carga, sin forzar la inclusión de la réplica local en el conjunto."}]}]} />

Cuando está habilitada (de forma predeterminada), la réplica local siempre se incluye en el conjunto de réplicas utilizadas para la lectura en paralelo.
Cuando está deshabilitada, no se da preferencia a la réplica local y las réplicas se seleccionan únicamente mediante el algoritmo de balanceo de carga.
Esto permite que las consultas con `max_parallel_replicas = 1` se dirijan a otro host, lo que puede mejorar la localidad de la caché cuando muchas consultas cortas se distribuyen en un clúster.

<div id="parallel_replicas_support_projection">
  ## parallel\_replicas\_support\_projection
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración. La optimización de las proyecciones puede aplicarse en réplicas paralelas. Solo surte efecto si parallel_replicas_local_plan está habilitado y aggregation_in_order está inactivo."}]}]} />

La optimización de las proyecciones puede aplicarse en réplicas paralelas. Solo surte efecto si parallel\_replicas\_local\_plan está habilitado y aggregation\_in\_order está inactivo.

<div id="parallel_view_processing">
  ## parallel\_view\_processing
</div>

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

Habilita el envío concurrente a las vistas adjuntas en lugar de secuencial.

<div id="parallelize_output_from_storages">
  ## parallelize\_output\_from\_storages
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "Permite el paralelismo al ejecutar consultas que leen de file/url/s3/etc. Esto puede reordenar las filas."}]}]} />

Paraleliza la salida en la etapa de lectura desde el almacenamiento. Permite paralelizar el procesamiento de consultas inmediatamente después de leer del almacenamiento, cuando sea posible

<div id="parsedatetime_e_requires_space_padding">
  ## parsedatetime\_e\_requires\_space\_padding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se mejoró la compatibilidad con MySQL DATE_FORMAT/STR_TO_DATE"}]}]} />

El formateador '%e' de la función 'parseDateTime' requiere que los días de un solo dígito estén rellenados con espacios; por ejemplo, se acepta ' 2', pero '2' genera un error.

<div id="parsedatetime_parse_without_leading_zeros">
  ## parsedatetime\_parse\_without\_leading\_zeros
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.11"},{"label": "1"},{"label": "Compatibilidad mejorada con MySQL DATE_FORMAT/STR_TO_DATE"}]}]} />

Los formateadores '%c', '%l' y '%k' de la función 'parseDateTime' interpretan meses y horas sin ceros a la izquierda.

<div id="partial_merge_join_left_table_buffer_bytes">
  ## partial\_merge\_join\_left\_table\_buffer\_bytes
</div>

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

Si no es 0, agrupa los bloques de la tabla izquierda en bloques más grandes para el lado izquierdo de partial merge join. Utiliza hasta 2 veces la memoria especificada por cada hilo de join.

<div id="partial_merge_join_rows_in_right_blocks">
  ## partial\_merge\_join\_rows\_in\_right\_blocks
</div>

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

Limita el tamaño de los bloques de datos del lado derecho de JOIN en el algoritmo partial merge join para las consultas [JOIN](/es/reference/statements/select/join).

Servidor de ClickHouse:

1. Divide los datos del lado derecho de JOIN en bloques de hasta el número de filas especificado.
2. Indexa cada bloque con sus valores mínimo y máximo.
3. Vuelca los bloques preparados a disco si es posible.

Valores posibles:

* Cualquier entero positivo. Rango de valores recomendado: \[1000, 100000].

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

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

Permite que la consulta devuelva un resultado parcial tras cancelarla.

<div id="parts_to_delay_insert">
  ## parts\_to\_delay\_insert
</div>

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

Si la tabla de destino contiene al menos esa cantidad de partes activas en una sola partición, ralentiza artificialmente la inserción en la tabla.

<div id="parts_to_throw_insert">
  ## parts\_to\_throw\_insert
</div>

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

Si el número de partes activas en una sola partición de la tabla de destino supera este valor, se lanza la excepción 'Too many parts ...'.

<div id="per_part_index_stats">
  ## per\_part\_index\_stats
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Registra estadísticas del índice para cada parte

<div id="poll_interval">
  ## poll\_interval
</div>

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

Bloquea el bucle de espera de la consulta en el servidor durante el número de segundos especificado.

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "Nuevo ajuste para especificar el dialecto SQL de origen del transpilador políglota."}]}]} />

Dialecto SQL de origen del transpilador políglota (p. ej., 'sqlite', 'mysql', 'postgresql', 'snowflake', 'duckdb').

<div id="postgresql_connection_attempt_timeout">
  ## postgresql\_connection\_attempt\_timeout
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "2"},{"label": "Permite controlar el parámetro 'connect_timeout' de la conexión a PostgreSQL."}]}]} />

Tiempo de espera de conexión, en segundos, para un único intento de conexión al endpoint de PostgreSQL.
El valor se pasa como parámetro `connect_timeout` en la URL de conexión.

<div id="postgresql_connection_pool_auto_close_connection">
  ## postgresql\_connection\_pool\_auto\_close\_connection
</div>

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

Cierra la conexión antes de devolverla al grupo.

<div id="postgresql_connection_pool_retries">
  ## postgresql\_connection\_pool\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "2"},{"label": "Permite controlar el número de reintentos del pool de conexiones de PostgreSQL."}]}]} />

Número de reintentos de push/pop del pool de conexiones para el motor de tabla PostgreSQL y el motor de base de datos.

<div id="postgresql_connection_pool_size">
  ## postgresql\_connection\_pool\_size
</div>

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

Tamaño del pool de conexiones para el motor de tabla PostgreSQL y el motor de base de datos.

<div id="postgresql_connection_pool_wait_timeout">
  ## postgresql\_connection\_pool\_wait\_timeout
</div>

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

Tiempo de espera de push/pop del pool de conexiones cuando el pool está vacío para el engine de tabla PostgreSQL y el engine de base de datos. De forma predeterminada, se bloqueará si el pool está vacío.

<div id="postgresql_fault_injection_probability">
  ## postgresql\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Probabilidad aproximada de fallo de las consultas internas de PostgreSQL (para la replicación). El valor válido está en el intervalo \[0.0f, 1.0f]

<div id="predicate_statistics_sample_rate">
  ## predicate\_statistics\_sample\_rate
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración para recopilar estadísticas de selectividad de predicados en system.predicate_statistics_log"}]}]} />

Recopila estadísticas de selectividad de predicados en `system.predicate_statistics_log`. Cuando se establece en N > 0, se toma una muestra de aproximadamente 1/N de las consultas (según el ID de la consulta). 0 significa deshabilitado.

<div id="prefer_column_name_to_alias">
  ## prefer\_column\_name\_to\_alias
</div>

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

Habilita o deshabilita el uso de los nombres de columna originales en lugar de alias en las expresiones y cláusulas de una consulta. Esto es especialmente importante cuando el alias coincide con el nombre de la columna; consulte [Expression Aliases](/es/reference/syntax#notes-on-usage). Active esta configuración para que las reglas sintácticas de los alias en ClickHouse sean más compatibles con la mayoría de los demás motores de base de datos.

Valores posibles:

* 0 — El nombre de la columna se sustituye por el alias.
* 1 — El nombre de la columna no se sustituye por el alias.

**Ejemplo**

Diferencia entre habilitado y deshabilitado:

Consulta:

```sql theme={null}
SET prefer_column_name_to_alias = 0;
SELECT avg(number) AS number, max(number) FROM numbers(10);
```

Resultado:

```text theme={null}
Received exception from server (version 21.5.1):
Code: 184. DB::Exception: Received from localhost:9000. DB::Exception: Aggregate function avg(number) is found inside another aggregate function in query: While processing avg(number) AS number.
```

Consulta:

```sql theme={null}
SET prefer_column_name_to_alias = 1;
SELECT avg(number) AS number, max(number) FROM numbers(10);
```

Resultado:

```text theme={null}
┌─number─┬─max(number)─┐
│    4.5 │           9 │
└────────┴─────────────┘
```

<div id="prefer_external_sort_block_bytes">
  ## prefer\_external\_sort\_block\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "16744704"},{"label": "Prioriza el número máximo de bytes por bloque para la ordenación externa; reduce el uso de memoria durante la fusión."}]}]} />

Prioriza el número máximo de bytes por bloque para la ordenación externa; reduce el uso de memoria durante la fusión.

<div id="prefer_global_in_and_join">
  ## prefer\_global\_in\_and\_join
</div>

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

Habilita el reemplazo de los operadores `IN`/`JOIN` por `GLOBAL IN`/`GLOBAL JOIN`.

Valores posibles:

* 0 — Deshabilitado. Los operadores `IN`/`JOIN` no se reemplazan por `GLOBAL IN`/`GLOBAL JOIN`.
* 1 — Habilitado. Los operadores `IN`/`JOIN` se reemplazan por `GLOBAL IN`/`GLOBAL JOIN`.

**Uso**

Aunque `SET distributed_product_mode=global` puede cambiar el comportamiento de las consultas para las tablas distribuidas, no resulta adecuado para las tablas locales ni para las tablas de fuentes externas. Aquí es donde entra en juego la configuración `prefer_global_in_and_join`.

Por ejemplo, podemos tener nodos que sirven consultas y contienen tablas locales que no son adecuadas para la distribución. Necesitamos distribuir sus datos sobre la marcha durante el procesamiento distribuido con la palabra clave `GLOBAL`: `GLOBAL IN`/`GLOBAL JOIN`.

Otro caso de uso de `prefer_global_in_and_join` es acceder a tablas creadas por motores externos. Esta configuración ayuda a reducir el número de llamadas a fuentes externas al unir esas tablas: solo una llamada por consulta.

**Véase también:**

* [Subconsultas distribuidas](/es/reference/statements/in#distributed-subqueries) para obtener más información sobre cómo usar `GLOBAL IN`/`GLOBAL JOIN`

<div id="prefer_localhost_replica">
  ## prefer\_localhost\_replica
</div>

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

Habilita o deshabilita el uso preferente de la réplica localhost al procesar consultas distribuidas.

Valores posibles:

* 1 — ClickHouse siempre envía una consulta a la réplica localhost si existe.
* 0 — ClickHouse usa la estrategia de balanceo especificada por el ajuste [load\_balancing](#load_balancing).

<Note>
  Deshabilite este ajuste si usa [max\_parallel\_replicas](#max_parallel_replicas) sin [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key).
  Si [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key) está establecido, deshabilite este ajuste solo si se usa en un clúster con múltiples segmentos que contienen múltiples réplicas.
  Si se usa en un clúster con un solo segmento y múltiples réplicas, deshabilitar este ajuste tendrá efectos negativos.
</Note>

<div id="prefer_warmed_unmerged_parts_seconds">
  ## prefer\_warmed\_unmerged\_parts\_seconds
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

Solo tiene efecto en ClickHouse Cloud. Si una parte fusionada tiene menos de esta cantidad de segundos de antigüedad y no está precalentada (véase [cache\_populated\_by\_fetch](/es/reference/settings/merge-tree-settings#cache_populated_by_fetch)), pero todas sus partes de origen están disponibles y precalentadas, las consultas SELECT leerán de esas partes en su lugar. Solo para Replicated-/SharedMergeTree. Ten en cuenta que esto solo comprueba si CacheWarmer procesó la parte; si la parte se cargó en la caché por algún otro medio, seguirá considerándose fría hasta que CacheWarmer la procese; si se precalentó y luego fue expulsada de la caché, seguirá considerándose caliente.

<div id="preferred_block_size_bytes">
  ## preferred\_block\_size\_bytes
</div>

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

Esta configuración ajusta el tamaño del bloque de datos para el procesamiento de consultas y supone un ajuste adicional más preciso de la configuración más general `max_block_size`. Si las columnas son grandes y, con `max_block_size` filas, es probable que el tamaño del bloque supere la cantidad de bytes especificada, se reducirá para mejorar la localidad de caché de la CPU.

<div id="preferred_max_column_in_block_size_bytes">
  ## preferred\_max\_column\_in\_block\_size\_bytes
</div>

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

Límite del tamaño máximo de una columna en un bloque durante la lectura. Ayuda a reducir la cantidad de fallos de caché. Debe ser cercano al tamaño de la caché L2.

<div id="preferred_optimize_projection_name">
  ## preferred\_optimize\_projection\_name
</div>

Si se establece en una cadena no vacía, ClickHouse intentará aplicar la proyección especificada en la consulta.

Valores posibles:

* string: nombre de la proyección preferida

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

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

El tamaño máximo del búfer de precarga para la lectura desde el sistema de archivos.

<div id="print_pretty_type_names">
  ## print\_pretty\_type\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "Experiencia de usuario mejorada."}]}]} />

Permite mostrar nombres de tipos con anidamiento profundo de forma legible y con sangrías en la consulta `DESCRIBE` y en la función `toTypeName()`.

Ejemplo:

```sql theme={null}
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;
```

```
a   Tuple(
    b String,
    c Tuple(
        d Nullable(UInt64),
        e Array(UInt32),
        f Array(Tuple(
            g String,
            h Map(
                String,
                Array(Tuple(
                    i String,
                    j UInt64
                ))
            )
        )),
        k Date
    ),
    l Nullable(String)
)
```

<div id="priority">
  ## priority
</div>

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

Prioridad de la consulta. 1: la más alta; cuanto mayor sea el valor, menor será la prioridad; 0: no se usan prioridades.

<div id="promql_database">
  ## promql\_database
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": ""},{"label": "Nuevo ajuste experimental"}]}]} />

Especifica el nombre de la base de datos que utiliza el dialecto 'promql'. Una cadena vacía indica la base de datos actual.

<div id="promql_evaluation_time">
  ## promql\_evaluation\_time
</div>

**Aliases**: `evaluation_time`

<SettingsInfoBlock type="FloatAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "auto"},{"label": "Se cambió el nombre del ajuste. El nombre anterior era `evaluation_time`."}]}]} />

Establece el momento de evaluación que se usará con el dialecto promql. 'auto' significa la hora actual.

<div id="promql_table">
  ## promql\_table
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": ""},{"label": "Nueva configuración experimental"}]}]} />

Especifica el nombre de la tabla TimeSeries utilizada por el dialecto 'promql'.

<div id="push_external_roles_in_interserver_queries">
  ## push\_external\_roles\_in\_interserver\_queries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Permite enviar roles de usuario desde el nodo de origen a otros nodos al ejecutar una consulta.

<div id="query_cache_compress_entries">
  ## query\_cache\_compress\_entries
</div>

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

Comprime las entradas de la [caché de consultas](/es/concepts/features/performance/caches/query-cache). Reduce el consumo de memoria de la caché de consultas a costa de ralentizar las inserciones y lecturas.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_cache_for_subqueries">
  ## query\_cache\_for\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva opción de configuración para habilitar la propagación de `use_query_cache` a todas las subconsultas. Sin ella, las subconsultas solo se almacenan en caché si se habilitan explícitamente por subconsulta con `SETTINGS use_query_cache = true`."}]}]} />

Si está activado, los resultados de las subconsultas pueden escribirse en la [caché de consultas](/es/concepts/features/performance/caches/query-cache) y leerse desde ella. Esto permite propagar `use_query_cache` a todas las subconsultas.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_cache_max_entries">
  ## query\_cache\_max\_entries
</div>

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

La cantidad máxima de resultados de consulta que el usuario actual puede almacenar en la [caché de consultas](/es/concepts/features/performance/caches/query-cache). 0 significa que no hay límite.

Valores posibles:

* Entero no negativo >= 0.

<div id="query_cache_max_size_in_bytes">
  ## query\_cache\_max\_size\_in\_bytes
</div>

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

La cantidad máxima de memoria (en bytes) que el usuario actual puede asignar a la [caché de consultas](/es/concepts/features/performance/caches/query-cache). 0 significa que no hay límite.

Valores posibles:

* Entero mayor o igual que 0.

<div id="query_cache_min_query_duration">
  ## query\_cache\_min\_query\_duration
</div>

<SettingsInfoBlock type="Milliseconds" default_value="0" />

Duración mínima, en milisegundos, que debe tener una consulta para que su resultado se almacene en la [caché de consultas](/es/concepts/features/performance/caches/query-cache).

Posibles valores:

* Entero positivo >= 0.

<div id="query_cache_min_query_runs">
  ## query\_cache\_min\_query\_runs
</div>

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

Número mínimo de veces que debe ejecutarse una consulta `SELECT` antes de que su resultado se almacene en la [caché de consultas](/es/concepts/features/performance/caches/query-cache).

Posibles valores:

* Entero mayor o igual que 0.

<div id="query_cache_nondeterministic_function_handling">
  ## query\_cache\_nondeterministic\_function\_handling
</div>

<SettingsInfoBlock type="QueryResultCacheNondeterministicFunctionHandling" default_value="throw" />

Controla cómo la [caché de consultas](/es/concepts/features/performance/caches/query-cache) gestiona las consultas `SELECT` con funciones no deterministas como `rand()` o `now()`.

Valores posibles:

* `'throw'` - Lanza una excepción y no almacena en caché el resultado de la consulta.
* `'save'` - Almacena en caché el resultado de la consulta.
* `'ignore'` - No almacena en caché el resultado de la consulta y no lanza ninguna excepción.

<div id="query_cache_share_between_users">
  ## query\_cache\_share\_between\_users
</div>

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

Si está activado, el resultado de las consultas `SELECT` almacenado en la [query cache](/es/concepts/features/performance/caches/query-cache) puede ser leído por otros usuarios.
No se recomienda habilitar esta configuración por motivos de seguridad.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_cache_squash_partial_results">
  ## query\_cache\_squash\_partial\_results
</div>

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

Combina los bloques de resultados parciales en bloques del tamaño de [max\_block\_size](#max_block_size). Reduce el rendimiento de las inserciones en la [query cache](/es/concepts/features/performance/caches/query-cache), pero mejora la capacidad de compresión de las entradas de caché (consulta [query\_cache\_compress-entries](#query_cache_compress_entries)).

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_cache_system_table_handling">
  ## query\_cache\_system\_table\_handling
</div>

<SettingsInfoBlock type="QueryResultCacheSystemTableHandling" default_value="throw" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "throw"},{"label": "La caché de consultas ya no almacena los resultados de las consultas realizadas sobre tablas del sistema"}]}]} />

Controla cómo la [caché de consultas](/es/concepts/features/performance/caches/query-cache) gestiona las consultas `SELECT` realizadas sobre tablas del sistema, es decir, tablas de las bases de datos `system.*` e `information_schema.*`.

Valores posibles:

* `'throw'` - Lanza una excepción y no almacena el resultado de la consulta en caché.
* `'save'` - Almacena el resultado de la consulta en caché.
* `'ignore'` - No almacena el resultado de la consulta en caché ni lanza una excepción.

<div id="query_cache_tag">
  ## query\_cache\_tag
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": ""},{"label": "Nueva configuración para etiquetar la configuración de la caché de consultas."}]}]} />

Una cadena que actúa como etiqueta para las entradas de la [caché de consultas](/es/concepts/features/performance/caches/query-cache).
La caché de consultas considera distintas las mismas consultas con etiquetas diferentes.

Valores posibles:

* Cualquier cadena

<div id="query_cache_ttl">
  ## query\_cache\_ttl
</div>

<SettingsInfoBlock type="Segundos" default_value="60" />

Transcurrido este tiempo, en segundos, las entradas de la [caché de consultas](/es/concepts/features/performance/caches/query-cache) caducan.

Valores posibles:

* Número entero positivo >= 0.

<div id="query_metric_log_interval">
  ## query\_metric\_log\_interval
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "-1"},{"label": "Nueva configuración."}]}]} />

El intervalo, en milisegundos, en el que se recopila [query\_metric\_log](/es/reference/system-tables/query_metric_log) para cada consulta.

Si se establece en cualquier valor negativo, tomará el valor `collect_interval_milliseconds` de la [configuración de query\_metric\_log](/es/reference/settings/server-settings/settings#query_metric_log) o, si no está presente, usará 1000 de forma predeterminada.

Para deshabilitar la recopilación de una sola consulta, establezca `query_metric_log_interval` en 0.

Valor predeterminado: -1

<div id="query_plan_aggregation_in_order">
  ## query\_plan\_aggregation\_in\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.12"},{"label": "1"},{"label": "Habilita cierta refactorización del plan de consulta"}]}]} />

Activa la optimización de agregación en orden a nivel del plan de consulta.
Solo surte efecto si la configuración [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para depuración. La configuración puede cambiar en el futuro de forma incompatible con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactivar
* 1 - Activar

<div id="query_plan_convert_any_join_to_semi_or_anti_join">
  ## query\_plan\_convert\_any\_join\_to\_semi\_or\_anti\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Permite convertir ANY JOIN en SEMI o ANTI JOIN si el filtro posterior a JOIN siempre se evalúa como falso para las filas con coincidencia o sin coincidencia

<div id="query_plan_convert_join_to_in">
  ## query\_plan\_convert\_join\_to\_in
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite convertir `JOIN` en una subconsulta con `IN` si las columnas de salida están asociadas únicamente a la tabla izquierda. Puede producir resultados incorrectos con `JOIN` que no sean `ANY` (p. ej., `ALL JOIN`, que es el valor predeterminado).

<div id="query_plan_convert_outer_join_to_inner_join">
  ## query\_plan\_convert\_outer\_join\_to\_inner\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Permite convertir `OUTER JOIN` en `INNER JOIN` si el filtro después de `JOIN` siempre descarta los valores por defecto"}]}]} />

Permite convertir `OUTER JOIN` en `INNER JOIN` si el filtro después de `JOIN` siempre descarta los valores por defecto

<div id="query_plan_direct_read_from_text_index">
  ## query\_plan\_direct\_read\_from\_text\_index
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "El índice de texto ahora es GA"}]}, {"id": "row-2","items": [{"label": "25.9"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Permite aplicar el filtrado de búsqueda de texto completo usando únicamente el índice de texto invertido en el plan de consulta.

<div id="query_plan_display_internal_aliases">
  ## query\_plan\_display\_internal\_aliases
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Muestra los alias internos (como \_\_table1) en EXPLAIN PLAN en lugar de los especificados en la consulta original.

<div id="query_plan_enable_multithreading_after_window_functions">
  ## query\_plan\_enable\_multithreading\_after\_window\_functions
</div>

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

Habilita el procesamiento multihilo después de evaluar las funciones de ventana para permitir el procesamiento de flujo en paralelo

<div id="query_plan_enable_optimizations">
  ## query\_plan\_enable\_optimizations
</div>

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

Activa o desactiva la optimización de consultas a nivel del plan de consulta.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactiva todas las optimizaciones a nivel del plan de consulta
* 1 - Activa las optimizaciones a nivel del plan de consulta (pero las optimizaciones individuales aún pueden desactivarse mediante sus configuraciones específicas)

<div id="query_plan_execute_functions_after_sorting">
  ## query\_plan\_execute\_functions\_after\_sorting
</div>

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

Activa o desactiva una optimización a nivel del plan de consulta que desplaza las expresiones para que se ejecuten después de los pasos de ordenación.
Solo surte efecto si la configuración [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de maneras incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_filter_push_down">
  ## query\_plan\_filter\_push\_down
</div>

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

Activa o desactiva una optimización a nivel del plan de consulta que empuja los filtros hacia abajo en el plan de ejecución.
Solo surte efecto si la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactivar
* 1 - Activar

<div id="query_plan_join_shard_by_pk_ranges">
  ## query\_plan\_join\_shard\_by\_pk\_ranges
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Aplica sharding a JOIN si las claves de JOIN contienen un prefijo de PRIMARY KEY en ambas tablas. Compatible con los algoritmos hash, parallel\_hash y full\_sorting\_merge. Normalmente no acelera las consultas, pero puede reducir el consumo de memoria.

<div id="query_plan_join_swap_table">
  ## query\_plan\_join\_swap\_table
</div>

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "auto"},{"label": "Nueva configuración. Antes siempre se elegía la tabla derecha."}]}]} />

Determina qué lado del join debe ser la tabla de construcción (también llamada interna, la que se inserta en la tabla hash para un hash join) en el plan de consulta. Esta configuración solo es compatible con la strictness `ALL` de `JOIN` con la cláusula `JOIN ON`. Los valores posibles son:

* 'auto': Deja que el planificador decida qué tabla usar como tabla de construcción.
  * 'false': No intercambiar nunca las tablas (la tabla derecha es la tabla de construcción).
  * 'true': Intercambiar siempre las tablas (la tabla izquierda es la tabla de construcción).

<div id="query_plan_lift_up_array_join">
  ## query\_plan\_lift\_up\_array\_join
</div>

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

Activa o desactiva una optimización a nivel del plan de consulta que mueve los ARRAY JOIN a una posición superior en el plan de ejecución.
Solo tiene efecto si el ajuste [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_lift_up_union">
  ## query\_plan\_lift\_up\_union
</div>

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

Activa o desactiva una optimización a nivel del plan de consulta que mueve subárboles más grandes del plan de consulta a union para permitir optimizaciones adicionales.
Solo surte efecto si el ajuste [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Este es un ajuste para expertos que los desarrolladores solo deben usar para depuración. El ajuste puede cambiar en el futuro de maneras incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_max_limit_for_lazy_materialization">
  ## query\_plan\_max\_limit\_for\_lazy\_materialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "10"},{"label": "Nueva configuración añadida para controlar el valor límite máximo que permite usar el plan de consulta para la optimización de materialización diferida. Si es cero, no hay límite"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10000"},{"label": "Se aumenta el límite tras la mejora del rendimiento"}]}, {"id": "row-3","items": [{"label": "25.11"},{"label": "100"},{"label": "Más optimizado"}]}]} />

Controla el valor límite máximo que permite usar el plan de consulta para la optimización de materialización diferida. Si es cero, no hay límite.

<div id="query_plan_max_limit_for_top_k_optimization">
  ## query\_plan\_max\_limit\_for\_top\_k\_optimization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1000"},{"label": "Nueva opción."}]}]} />

Controla el valor máximo del límite que permite evaluar el plan de consulta para la optimización TopK usando el índice de omisión minmax y el filtrado dinámico por umbral. Si es cero, no hay límite.

<div id="query_plan_max_optimizations_to_apply">
  ## query\_plan\_max\_optimizations\_to\_apply
</div>

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

Limita el número total de optimizaciones aplicadas al plan de consulta; consulte la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations).
Es útil para evitar tiempos de optimización excesivos en consultas complejas.
En la consulta EXPLAIN PLAN, se dejan de aplicar optimizaciones una vez alcanzado este límite y se devuelve el plan tal cual.
En la ejecución normal de consultas, si el número real de optimizaciones supera esta configuración, se lanza una excepción.

<Note>
  Esta es una configuración de nivel experto que solo deberían usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

<div id="query_plan_max_step_description_length">
  ## query\_plan\_max\_step\_description\_length
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "500"},{"label": "Nueva opción de configuración"}]}]} />

Longitud máxima de la descripción del paso en EXPLAIN PLAN.

<div id="query_plan_merge_expressions">
  ## query\_plan\_merge\_expressions
</div>

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

Activa o desactiva una optimización a nivel del plan de consulta que fusiona filtros consecutivos.
Solo surte efecto si la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que los desarrolladores solo deben usar para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_merge_filter_into_join_condition">
  ## query\_plan\_merge\_filter\_into\_join\_condition
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Se añadió una nueva configuración para integrar el filtro en la condición de JOIN"}]}]} />

Permite integrar el filtro en la condición de `JOIN` y convertir `CROSS JOIN` en `INNER`.

<div id="query_plan_merge_filters">
  ## query\_plan\_merge\_filters
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Permite combinar filtros en el plan de consulta"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "Permite combinar filtros en el plan de consulta. Esto es necesario para admitir correctamente el filter push-down con el analizador."}]}]} />

Permite combinar filtros en el plan de consulta.

<div id="query_plan_optimize_join_order_algorithm">
  ## query\_plan\_optimize\_join\_order\_algorithm
</div>

<SettingsInfoBlock type="JoinOrderAlgorithm" default_value="greedy" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "greedy"},{"label": "Nueva configuración experimental."}]}]} />

Especifica qué algoritmos de orden de JOIN se intentan durante la optimización del plan de consulta. Están disponibles los siguientes algoritmos:

* 'greedy' - algoritmo voraz básico - funciona rápido, pero puede que no produzca el mejor orden de JOIN
* 'dpsize' - implementa el algoritmo DPsize, actualmente solo para Inner joins - considera todos los órdenes de JOIN posibles y encuentra el más óptimo, pero puede ser lento para consultas con muchas tablas y predicados de JOIN.
  Se pueden especificar varios algoritmos, por ejemplo, 'dpsize,greedy'.

<div id="query_plan_optimize_join_order_limit">
  ## query\_plan\_optimize\_join\_order\_limit
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "Nueva opción"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10"},{"label": "Permitir de forma predeterminada la reordenación de JOIN con más tablas"}]}]} />

Optimiza el orden de los JOIN dentro de la misma subconsulta. Actualmente, solo se admite en casos muy limitados.
El valor es el número máximo de tablas que se pueden optimizar.

<div id="query_plan_optimize_join_order_randomize">
  ## query\_plan\_optimize\_join\_order\_randomize
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nuevo ajuste para aleatorizar las estadísticas del orden de join con fines de prueba."}]}]} />

Cuando es distinto de cero, el optimizador del orden de join utiliza cardinalidades y NDV generados aleatoriamente en lugar de estadísticas reales.
Cuando se establece en 1, se genera una semilla aleatoria; cuando se establece en un valor > 1, ese valor se usa directamente como semilla.
Su propósito es realizar pruebas para detectar errores provocados por distintos órdenes de join.

<div id="query_plan_optimize_lazy_final">
  ## query\_plan\_optimize\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nuevo ajuste para optimizar la lectura con FINAL en ReplacingMergeTree mediante el análisis de índices basado en conjuntos"}]}]} />

Optimiza la lectura con FINAL en ReplacingMergeTree creando un conjunto de claves primarias y utilizándolo para el análisis de índices.

<div id="query_plan_optimize_lazy_materialization">
  ## query\_plan\_optimize\_lazy\_materialization
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Se añadió una nueva configuración para usar el plan de consulta en la optimización de la materialización diferida"}]}]} />

Utiliza el plan de consulta en la optimización de la materialización diferida.

<div id="query_plan_optimize_prewhere">
  ## query\_plan\_optimize\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Permite trasladar el filtro a la expresión PREWHERE en los storages compatibles"}]}]} />

Permite trasladar el filtro a la expresión PREWHERE en los storages compatibles

<div id="query_plan_push_down_limit">
  ## query\_plan\_push\_down\_limit
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Activa o desactiva una optimización a nivel del plan de consulta que desplaza las cláusulas LIMIT a niveles inferiores del plan de ejecución.
Solo tiene efecto si el ajuste [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

<Note>
  Este es un ajuste de nivel experto que solo deberían usar los desarrolladores para depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_read_in_order">
  ## query\_plan\_read\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Activa o desactiva la optimización de lectura en orden a nivel del plan de consulta.
Solo surte efecto si el ajuste [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Este es un ajuste de nivel experto que solo deben usar los desarrolladores para tareas de depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactivar
* 1 - Activar

<div id="query_plan_read_in_order_through_join">
  ## query\_plan\_read\_in\_order\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Mantiene la lectura en orden desde la tabla izquierda en las operaciones JOIN, lo que pueden aprovechar los pasos posteriores.

<div id="query_plan_remove_redundant_distinct">
  ## query\_plan\_remove\_redundant\_distinct
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "Eliminar el paso DISTINCT redundante del plan de consulta"}]}]} />

Activa o desactiva una optimización a nivel del plan de consulta que elimina pasos DISTINCT redundantes.
Solo surte efecto si la configuración [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deberían usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_remove_redundant_sorting">
  ## query\_plan\_remove\_redundant\_sorting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "Elimina la ordenación redundante en el plan de consulta. Por ejemplo, los pasos de ordenación relacionados con cláusulas ORDER BY en subconsultas"}]}]} />

Activa o desactiva una optimización a nivel del plan de consulta que elimina pasos de ordenación redundantes, por ejemplo, en subconsultas.
Solo surte efecto si la configuración [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. Esta configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_remove_unused_columns">
  ## query\_plan\_remove\_unused\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración. Añade una optimización para eliminar columnas no utilizadas en el plan de consulta."}]}]} />

Activa o desactiva una optimización a nivel del plan de consulta que intenta eliminar las columnas no utilizadas (tanto de entrada como de salida) de los pasos del plan de consulta.
Solo tiene efecto si la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_plan_reuse_storage_ordering_for_window_functions">
  ## query\_plan\_reuse\_storage\_ordering\_for\_window\_functions
</div>

**Alias**: `optimize_read_in_window_order`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Deshabilita esta lógica de forma predeterminada."}]}]} />

Activa o desactiva una optimización a nivel del plan de consulta que utiliza el ordenamiento del almacenamiento al ordenar para funciones de ventana.
Solo tiene efecto si el ajuste [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Este es un ajuste de nivel experto que solo deben usar los desarrolladores para depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactivar
* 1 - Activar

<div id="query_plan_split_filter">
  ## query\_plan\_split\_filter
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<Note>
  Esta es una configuración de nivel experto que solo los desarrolladores deberían usar para tareas de depuración. La configuración puede cambiar en el futuro de formas no compatibles con versiones anteriores o eliminarse.
</Note>

Activa o desactiva una optimización a nivel del plan de consulta que divide los filtros en expresiones.
Solo surte efecto si la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

Posibles valores:

* 0 - Deshabilitar
* 1 - Habilitar

<div id="query_plan_text_index_add_hint">
  ## query\_plan\_text\_index\_add\_hint
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Permite añadir una sugerencia (un predicado adicional) al filtrado generado a partir del índice de texto invertido en el plan de consulta.

<div id="query_plan_top_k_through_join">
  ## query\_plan\_top\_k\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración para habilitar una optimización a nivel del plan de consulta que desplaza ORDER BY ... LIMIT n por debajo de un join LEFT/RIGHT cuando la clave de ordenación solo hace referencia al lado preservado."}]}]} />

Activa una optimización a nivel del plan de consulta que desplaza `ORDER BY ... LIMIT n` por debajo de un join cuando la clave de ordenación solo hace referencia a columnas del lado preservado por el join (LEFT/RIGHT). Restringe cuántas filas debe producir la entrada del lado preservado antes de hacer el join.
Solo tiene efecto si la configuración [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) es 1.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="query_plan_try_use_vector_search">
  ## query\_plan\_try\_use\_vector\_search
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Activa o desactiva una optimización a nivel del plan de consulta que intenta utilizar el índice de similitud vectorial.
Solo tiene efecto si la configuración [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) es 1.

<Note>
  Esta es una configuración de nivel experto que los desarrolladores solo deberían usar para depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
</Note>

Valores posibles:

* 0 - Desactivar
* 1 - Activar

<div id="query_profiler_cpu_time_period_ns">
  ## query\_profiler\_cpu\_time\_period\_ns
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000000" />

Establece el período de un temporizador del reloj de la CPU del [perfilador de consultas](/es/concepts/features/performance/troubleshoot/sampling-query-profiler). Este temporizador cuenta solo el tiempo de CPU.

Valores posibles:

* Un número entero positivo de nanosegundos.

  Valores recomendados:

  * 10000000 (100 veces por segundo) nanosegundos o más para consultas individuales.
  * 1000000000 (una vez por segundo) para el perfilado en todo el clúster.

* 0 para desactivar el temporizador.

Véase también:

* Tabla del sistema [trace\_log](/es/reference/system-tables/trace_log)

<div id="query_profiler_real_time_period_ns">
  ## query\_profiler\_real\_time\_period\_ns
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000000" />

Establece el período de un temporizador de reloj real del [perfilador de consultas](/es/concepts/features/performance/troubleshoot/sampling-query-profiler). El temporizador de reloj real mide el tiempo real transcurrido.

Posibles valores:

* Número entero positivo, en nanosegundos.

  Valores recomendados:

  * 10000000 (100 veces por segundo) nanosegundos o menos para consultas individuales.
  * 1000000000 (una vez por segundo) para el perfilado de todo el clúster.

* 0 para desactivar el temporizador.

Véase también:

* Tabla del sistema [trace\_log](/es/reference/system-tables/trace_log)

Valor predeterminado de Cloud: `3000000000`.

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="0" />

El tiempo de espera en la cola de solicitudes si el número de solicitudes concurrentes supera el máximo.

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="5000" />

El tiempo de espera para leer desde RabbitMQ antes de volver a intentarlo.

<div id="read_backoff_max_throughput">
  ## read\_backoff\_max\_throughput
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

Ajuste para reducir el número de hilos en caso de lecturas lentas. Cuenta eventos cuando el ancho de banda de lectura es inferior a esa cantidad de bytes por segundo.

<div id="read_backoff_min_concurrency">
  ## read\_backoff\_min\_concurrency
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

Configuración para intentar mantener el número mínimo de hilos en caso de lecturas lentas.

<div id="read_backoff_min_events">
  ## read\_backoff\_min\_events
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

Configuración para reducir la cantidad de hilos en caso de lecturas lentas. La cantidad de eventos tras la cual se reducirá la cantidad de hilos.

<div id="read_backoff_min_interval_between_events_ms">
  ## read\_backoff\_min\_interval\_between\_events\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="1000" />

Configuración para reducir el número de hilos en caso de lecturas lentas. Ignore el evento si desde el anterior ha transcurrido menos de un determinado intervalo de tiempo.

<div id="read_backoff_min_latency_ms">
  ## read\_backoff\_min\_latency\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="1000" />

Configuración para reducir el número de hilos en caso de lecturas lentas. Solo se tienen en cuenta las lecturas que hayan tardado al menos ese tiempo.

<div id="read_from_distributed_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_distributed\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva opción de configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Es igual que read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache, pero para la caché distribuida.

<div id="read_from_filesystem_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite usar la caché del sistema de archivos en modo pasivo: aprovechar las entradas de caché existentes, pero sin añadir más entradas a la caché. Si establece esta configuración para consultas ad hoc pesadas y la deja deshabilitada para consultas cortas en tiempo real, podrá evitar que las consultas demasiado pesadas saturen la caché y mejorar la eficiencia general del sistema.

<div id="read_from_page_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_page\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Se añadió la caché de páginas en espacio de usuario"}]}]} />

Usa la caché de páginas en espacio de usuario en modo pasivo, de forma similar a read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache.

<div id="read_in_order_two_level_merge_threshold">
  ## read\_in\_order\_two\_level\_merge\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="100" />

Número mínimo de partes que se deben leer para ejecutar el paso de fusión preliminar durante la lectura multihilo en el orden de la clave primaria.

<div id="read_in_order_use_buffering">
  ## read\_in\_order\_use\_buffering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "Usa el búfer antes de la fusión al leer en orden de clave primaria"}]}]} />

Usa el búfer antes de la fusión al leer en orden de clave primaria. Aumenta el paralelismo de la ejecución de consultas

<div id="read_in_order_use_virtual_row">
  ## read\_in\_order\_use\_virtual\_row
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Usa una fila virtual al leer siguiendo el orden de la clave primaria o de su función monótona. Es útil al buscar entre múltiples partes, ya que solo se accede a las relevantes."}]}]} />

Usa una fila virtual al leer siguiendo el orden de la clave primaria o de su función monótona. Es útil al buscar entre múltiples partes, ya que solo se accede a las relevantes.

<div id="read_in_order_use_virtual_row_per_block">
  ## read\_in\_order\_use\_virtual\_row\_per\_block
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Emite una fila virtual después de cada bloque durante la lectura en orden para permitir una repriorización más frecuente de las fuentes en MergingSortedTransform."}]}]} />

Cuando se habilita junto con `read_in_order_use_virtual_row`, emite una fila virtual después de leer cada bloque (no solo al principio de cada parte).
Esto permite que `MergingSortedTransform` repriorice las fuentes con más frecuencia, lo que resulta útil cuando los filtros posteriores descartan muchas filas y los datos se distribuyen de forma desigual entre las partes.
Ten en cuenta que deshabilita la optimización `read_in_order_use_buffering` y la fusión preliminar (`read_in_order_two_level_merge_threshold`) para la lectura.

<div id="read_overflow_mode">
  ## read\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Qué hacer si se supera el límite.

<div id="read_overflow_mode_leaf">
  ## read\_overflow\_mode\_leaf
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece lo que ocurre cuando el volumen de datos leídos supera uno de los límites de hoja.

Opciones posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial.

<div id="read_priority">
  ## read\_priority
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

Prioridad para la lectura de datos desde el sistema de archivos local o remoto. Solo es compatible con el método 'pread\_threadpool' para el sistema de archivos local y con el método `threadpool` para el sistema de archivos remoto.

<div id="read_through_distributed_cache">
  ## read\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Una configuración para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Permite leer desde la caché distribuida

<div id="readonly">
  ## readonly
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

0: sin restricciones de solo lectura. 1: solo solicitudes de lectura, así como cambios en configuraciones permitidas explícitamente. 2: solo solicitudes de lectura, así como cambios en las configuraciones, excepto en la configuración 'readonly'.

<div id="receive_data_timeout_ms">
  ## receive\_data\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="2000" />

Tiempo de espera de la conexión para recibir el primer paquete de datos o un paquete con progreso positivo desde una réplica

<div id="receive_timeout">
  ## receive\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="300" />

Tiempo de espera para recibir datos de la red, en segundos. Si no se recibe ningún byte durante este intervalo, se lanza una excepción. Si establece esta configuración en el cliente, también se configurará `send_timeout` para el `socket` en el extremo correspondiente de la conexión en el servidor.

<div id="recursive_cte_max_steps_in_type_inference">
  ## recursive\_cte\_max\_steps\_in\_type\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "Número máximo de iteraciones para inferir tipos de columna en CTE recursivas mediante la aplicación iterativa de getLeastSupertype"}]}]} />

Número máximo de iteraciones para inferir tipos de columna en CTE recursivas. Los tipos de columna se determinan aplicando `getLeastSupertype` de forma iterativa a las partes no recursiva y recursiva de UNION ALL hasta alcanzar la convergencia. Establézcalo en 0 para desactivar el ensanchamiento de tipos y usar solo los tipos de la parte no recursiva.

<div id="regexp_dict_allow_hyperscan">
  ## regexp\_dict\_allow\_hyperscan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite que el diccionario regexp\_tree use la biblioteca Hyperscan.

<div id="regexp_dict_flag_case_insensitive">
  ## regexp\_dict\_flag\_case\_insensitive
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Usa coincidencias sin distinción entre mayúsculas y minúsculas para un diccionario regexp\_tree. Se puede sobrescribir en expresiones individuales con (?i) y (?-i).

<div id="regexp_dict_flag_dotall">
  ## regexp\_dict\_flag\_dotall
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite que '.' coincida con caracteres de salto de línea en un diccionario regexp\_tree.

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Establece el número máximo de coincidencias de una sola expresión regular por fila. Úselo para protegerse frente a la sobrecarga de memoria al usar una expresión regular codiciosa en la función [extractAllGroupsHorizontal](/es/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

Valores posibles:

* Entero positivo.

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Rechaza los patrones cuya evaluación con hyperscan probablemente sea costosa (debido a la explosión de estados del NFA)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="2" />

Si el uso de memoria después de la recombinación no se reduce en esta proporción, la recombinación se deshabilitará.

<div id="remote_filesystem_read_method">
  ## remote\_filesystem\_read\_method
</div>

<SettingsInfoBlock type="String" default_value="threadpool" />

Método para leer datos desde el sistema de archivos remoto; puede ser uno de los siguientes: read, threadpool.

<div id="remote_filesystem_read_prefetch">
  ## remote\_filesystem\_read\_prefetch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Debe usar prefetching al leer datos de un sistema de archivos remoto.

<div id="remote_fs_read_backoff_max_tries">
  ## remote\_fs\_read\_backoff\_max\_tries
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

Número máximo de reintentos de lectura con backoff

<div id="remote_fs_read_max_backoff_ms">
  ## remote\_fs\_read\_max\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

Tiempo máximo de espera al intentar leer datos de un disco remoto

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="4194304" />

Cantidad mínima de bytes necesaria para que una lectura remota (url, s3) realice `seek`, en lugar de leer con `ignore`.

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **Tipo:** String

* **Valor predeterminado:** Cadena vacía

Esta configuración permite especificar un patrón de cambio de nombre para los archivos procesados por la función de tabla `file`. Cuando esta opción está configurada, todos los archivos leídos por la función de tabla `file` se renombrarán según el patrón especificado con marcadores de posición, solo si el procesamiento de los archivos se completó correctamente.

<div id="placeholders">
  ### Marcadores de posición
</div>

* `%a` — Nombre completo del archivo original (p. ej., "sample.csv").
* `%f` — Nombre del archivo original sin la extensión (p. ej., "sample").
* `%e` — Extensión del archivo original con el punto (p. ej., ".csv").
* `%t` — Marca de tiempo (en microsegundos).
* `%%` — Signo de porcentaje ("%").

<div id="example">
  ### Ejemplo
</div>

* Opción: `--rename_files_after_processing="processed_%f_%t%e"`

* Consulta: `SELECT * FROM file('sample.csv')`

Si la lectura de `sample.csv` se realiza correctamente, el archivo pasará a llamarse `processed_sample_1683473210851438.csv`

<div id="replace_running_query">
  ## replace\_running\_query
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Al usar la interfaz HTTP, se puede pasar el parámetro 'query\_id'. Puede ser cualquier cadena que sirva como identificador de la consulta.
Si en ese momento ya existe una consulta del mismo usuario con el mismo 'query\_id', el comportamiento depende del parámetro 'replace\_running\_query'.

`0` (predeterminado) – Lanzar una excepción (no permitir que la consulta se ejecute si ya hay una consulta con el mismo 'query\_id' en ejecución).

`1` – Cancelar la consulta anterior y empezar a ejecutar la nueva.

Establezca este parámetro en 1 para implementar sugerencias para condiciones de segmentación. Después de introducir el siguiente carácter, si la consulta anterior aún no ha terminado, debe cancelarse.

<div id="replace_running_query_max_wait_ms">
  ## replace\_running\_query\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="5000" />

El tiempo de espera para que finalice la consulta en ejecución con el mismo `query_id` cuando la configuración [replace\_running\_query](#replace_running_query) está activa.

Valores posibles:

* Entero positivo.
* 0 — Lanza una excepción y no permite ejecutar una nueva consulta si el servidor ya está ejecutando una consulta con el mismo `query_id`.

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

Especifica cuánto tiempo (en segundos) se debe esperar para que las réplicas inactivas ejecuten consultas [`ALTER`](/es/reference/statements/alter), [`OPTIMIZE`](/es/reference/statements/optimize) o [`TRUNCATE`](/es/reference/statements/truncate).

Posibles valores:

* `0` — No esperar.
* Entero negativo — Esperar indefinidamente.
* Entero positivo — Número de segundos que se debe esperar.

<div id="restore_replace_external_dictionary_source_to_null">
  ## restore\_replace\_external\_dictionary\_source\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Reemplaza las fuentes externas de diccionario por Null al restaurar. Útil para pruebas

<div id="restore_replace_external_engines_to_null">
  ## restore\_replace\_external\_engines\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Con fines de prueba. Sustituye todos los motores externos por Null para evitar iniciar conexiones externas.

<div id="restore_replace_external_table_functions_to_null">
  ## restore\_replace\_external\_table\_functions\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Con fines de prueba. Sustituye todas las funciones de tabla externas por Null para no iniciar conexiones externas.

<div id="restore_replicated_merge_tree_to_shared_merge_tree">
  ## restore\_replicated\_merge\_tree\_to\_shared\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Reemplaza el motor de tabla Replicated*MergeTree por Shared*MergeTree durante RESTORE.

Valor predeterminado de Cloud: `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Valor predeterminado en Cloud: `throw`

Define qué hacer si el volumen del resultado supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

Usar 'break' es similar a usar LIMIT. `Break` interrumpe la ejecución solo a nivel de
bloque. Esto significa que la cantidad de filas devueltas será mayor que
[`max_result_rows`](/es/reference/settings/session-settings#max_result_rows), será un múltiplo de [`max_block_size`](/es/reference/settings/session-settings#max_block_size)
y dependerá de [`max_threads`](/es/reference/settings/session-settings#max_threads).

**Ejemplo**

```sql title="Query" theme={null}
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```

```text title="Result" theme={null}
6666 rows in set. ...
```

<div id="rewrite_count_distinct_if_with_count_distinct_implementation">
  ## rewrite\_count\_distinct\_if\_with\_count\_distinct\_implementation
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.8"},{"label": "1"},{"label": "Reescribir countDistinctIf mediante la configuración count_distinct_implementation"}]}]} />

Permite reescribir `countDistcintIf` mediante la configuración [count\_distinct\_implementation](#count_distinct_implementation).

Posibles valores:

* true — Se permite.
* false — No se permite.

<div id="rewrite_in_to_join">
  ## rewrite\_in\_to\_join
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración experimental"}]}]} />

Reescribe expresiones como 'x IN subquery' como JOIN. Esto puede ser útil para optimizar toda la consulta mediante la reordenación de JOIN.

<div id="rows_before_aggregation">
  ## rows\_before\_aggregation
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Proporciona el valor exacto de la estadística rows_before_aggregation; representa el número de filas leídas antes de la agregación"}]}]} />

Si está habilitado, ClickHouse proporcionará el valor exacto de la estadística rows\_before\_aggregation; representa el número de filas leídas antes de la agregación

<div id="s3_allow_multipart_copy">
  ## s3\_allow\_multipart\_copy
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Nueva opción."}]}]} />

Permite la copia multiparte en S3.

<div id="s3_allow_parallel_part_upload">
  ## s3\_allow\_parallel\_part\_upload
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa varios hilos para la carga multiparte en S3. Esto puede provocar un uso de memoria ligeramente mayor

<div id="s3_check_objects_after_upload">
  ## s3\_check\_objects\_after\_upload
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Comprueba cada objeto cargado en S3 con una solicitud HEAD para asegurarse de que la carga se haya completado correctamente

<div id="s3_connect_timeout_ms">
  ## s3\_connect\_timeout\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "Se introduce una nueva configuración específica para el tiempo de espera de conexión a S3"}]}]} />

Tiempo de espera de conexión al host de los discos S3.

<div id="s3_create_new_file_on_insert">
  ## s3\_create\_new\_file\_on\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Habilita o deshabilita la creación de un archivo nuevo en cada inserción en tablas del motor S3. Si está habilitado, en cada inserción se creará un nuevo objeto de S3 con la clave, siguiendo un patrón similar a este:

inicial: `data.Parquet.gz` -> `data.1.Parquet.gz` -> `data.2.Parquet.gz`, etc.

Valores posibles:

* 0 — la consulta `INSERT` crea un archivo nuevo o falla si el archivo ya existe y `s3_truncate_on_insert` no está establecido.
* 1 — la consulta `INSERT` crea un archivo nuevo en cada inserción usando un sufijo (a partir del segundo) si `s3_truncate_on_insert` no está establecido.

Consulta más detalles [aquí](/es/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data).

<div id="s3_disable_checksum">
  ## s3\_disable\_checksum
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

No calcule una suma de comprobación al enviar un archivo a S3. Esto acelera las escrituras al evitar pasadas de procesamiento excesivas sobre el archivo. En general, es seguro, ya que los datos de las tablas MergeTree de todos modos llevan sumas de comprobación en ClickHouse y, cuando se accede a S3 mediante HTTPS, la capa TLS ya proporciona integridad durante la transferencia por la red. Aun así, las sumas de comprobación adicionales en S3 aportan una defensa en profundidad.

<div id="s3_ignore_file_doesnt_exist">
  ## s3\_ignore\_file\_doesnt\_exist
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Permite devolver 0 filas cuando los archivos solicitados no existen, en lugar de lanzar una excepción en el motor de tabla S3"}]}]} />

Ignora la ausencia de un archivo si no existe al leer ciertas claves.

Valores posibles:

* 1 — `SELECT` devuelve un resultado vacío.
* 0 — `SELECT` lanza una excepción.

<div id="s3_list_object_keys_size">
  ## s3\_list\_object\_keys\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Número máximo de archivos que puede devolver por lote la solicitud ListObject

<div id="s3_max_connections">
  ## s3\_max\_connections
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

El número máximo de conexiones por servidor.

<div id="s3_max_get_burst">
  ## s3\_max\_get\_burst
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Número máximo de solicitudes que se pueden emitir simultáneamente antes de alcanzar el límite de solicitudes por segundo. De forma predeterminada (0), equivale a `s3_max_get_rps`

<div id="s3_max_get_rps">
  ## s3\_max\_get\_rps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Límite de solicitudes GET por segundo a S3 antes de aplicar throttling. Cero significa sin límite.

<div id="s3_max_inflight_parts_for_one_file">
  ## s3\_max\_inflight\_parts\_for\_one\_file
</div>

<SettingsInfoBlock type="UInt64" default_value="20" />

El número máximo de partes cargadas simultáneamente en una solicitud de carga multiparte. 0 significa ilimitado.

<div id="s3_max_part_number">
  ## s3\_max\_part\_number
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "10000"},{"label": "Número máximo de parte para la carga de partes en S3"}]}]} />

Número máximo de parte para la carga de partes en S3.

<div id="s3_max_put_burst">
  ## s3\_max\_put\_burst
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Número máximo de solicitudes que pueden emitirse simultáneamente antes de alcanzar el límite de solicitudes por segundo. De forma predeterminada, (0) es igual a `s3_max_put_rps`

<div id="s3_max_put_rps">
  ## s3\_max\_put\_rps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Límite de solicitudes PUT a S3 por segundo antes de aplicar throttling. Cero significa sin límite.

<div id="s3_max_single_operation_copy_size">
  ## s3\_max\_single\_operation\_copy\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "33554432"},{"label": "Tamaño máximo para una única operación de copia en S3"}]}]} />

Tamaño máximo para una única operación de copia en S3. Esta configuración solo se utiliza si s3\_allow\_multipart\_copy es true.

<div id="s3_max_single_part_upload_size">
  ## s3\_max\_single\_part\_upload\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

El tamaño máximo del objeto que se puede subir a S3 mediante una carga de una sola parte.

<div id="s3_max_single_read_retries">
  ## s3\_max\_single\_read\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

El número máximo de reintentos durante una lectura única de S3.

<div id="s3_max_unexpected_write_error_retries">
  ## s3\_max\_unexpected\_write\_error\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

El número máximo de reintentos en caso de errores inesperados durante la escritura en S3.

<div id="s3_max_upload_part_size">
  ## s3\_max\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="5368709120" />

El tamaño máximo de cada parte durante una subida multiparte a S3.

<div id="s3_min_upload_part_size">
  ## s3\_min\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="16777216" />

El tamaño mínimo de la parte que se va a subir durante una carga multiparte a S3.

<div id="s3_path_filter_limit">
  ## s3\_path\_filter\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1000"},{"label": "Nueva configuración"}]}]} />

Número máximo de valores de `_path` que pueden extraerse de los filtros de la consulta para utilizarlos en la iteración de archivos
en lugar del listado con glob. 0 significa deshabilitado.

<div id="s3_request_timeout_ms">
  ## s3\_request\_timeout\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="30000" />

Tiempo de espera por inactividad para enviar y recibir datos hacia/desde S3. Se produce un error si una única llamada TCP de lectura o escritura queda bloqueada durante este tiempo.

<div id="s3_skip_empty_files">
  ## s3\_skip\_empty\_files
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Esperamos que ofrezca una mejor experiencia de usuario"}]}]} />

Activa o desactiva la omisión de archivos vacíos en las tablas del motor [S3](/es/reference/engines/table-engines/integrations/s3).

Valores posibles:

* 0 — `SELECT` lanza una excepción si el archivo vacío no es compatible con el formato solicitado.
* 1 — `SELECT` devuelve un resultado vacío para un archivo vacío.

<div id="s3_slow_all_threads_after_network_error">
  ## s3\_slow\_all\_threads\_after\_network\_error
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Cuando se establece en `true`, todos los hilos que ejecutan solicitudes a S3 hacia el mismo endpoint de copia de seguridad se ralentizan
después de que una sola solicitud a S3 encuentre un error de red que permita reintento, como un timeout de socket.
Cuando se establece en `false`, cada hilo gestiona el backoff de las solicitudes a S3 de forma independiente de los demás.

<div id="s3_strict_upload_part_size">
  ## s3\_strict\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

El tamaño exacto de la parte que se va a subir durante la subida multiparte a S3 (algunas implementaciones no admiten partes de tamaño variable).

<div id="s3_throw_on_zero_files_match">
  ## s3\_throw\_on\_zero\_files\_match
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Genera un error cuando la solicitud `ListObjects` no encuentra ningún archivo

<div id="s3_truncate_on_insert">
  ## s3\_truncate\_on\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Activa o desactiva el truncado antes de las inserciones en tablas con el motor S3. Si está desactivado, se lanzará una excepción al intentar insertar si ya existe un objeto en S3.

Valores posibles:

* 0 — la consulta `INSERT` crea un archivo nuevo o falla si el archivo ya existe y no se ha establecido s3\_create\_new\_file\_on\_insert.
* 1 — la consulta `INSERT` reemplaza el contenido existente del archivo con los datos nuevos.

Consulta más detalles [aquí](/es/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data).

<div id="s3_upload_part_size_multiply_factor">
  ## s3\_upload\_part\_size\_multiply\_factor
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

Multiplica s3\_min\_upload\_part\_size por este factor cada vez que se hayan subido s3\_multiply\_parts\_count\_threshold partes en una sola escritura en S3.

<div id="s3_upload_part_size_multiply_parts_count_threshold">
  ## s3\_upload\_part\_size\_multiply\_parts\_count\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="500" />

Cada vez que se haya subido este número de partes a S3, `s3_min_upload_part_size` se multiplica por `s3_upload_part_size_multiply_factor`.

<div id="s3_uri_style">
  ## s3\_uri\_style
</div>

<SettingsInfoBlock type="S3UriStyle" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "auto"},{"label": "Nueva configuración."}]}]} />

Obliga a usar el estilo de endpoint de S3. Valores posibles: auto, virtual\_hosted, path.

<div id="s3_use_adaptive_timeouts">
  ## s3\_use\_adaptive\_timeouts
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Cuando se establece en `true`, en todas las solicitudes a S3 los dos primeros intentos se realizan con tiempos de espera de envío y recepción reducidos.
Cuando se establece en `false`, todos los intentos se realizan con los mismos tiempos de espera.

<div id="s3_validate_request_settings">
  ## s3\_validate\_request\_settings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Permite desactivar la validación de la configuración de solicitudes de S3"}]}]} />

Habilita la validación de la configuración de solicitudes de S3.
Valores posibles:

* 1 — validar la configuración.
* 0 — no validar la configuración.

<div id="s3queue_default_zookeeper_path">
  ## s3queue\_default\_zookeeper\_path
</div>

<SettingsInfoBlock type="String" default_value="/clickhouse/s3queue/" />

Prefijo de ruta de ZooKeeper predeterminado para el motor S3Queue

<div id="s3queue_enable_logging_to_s3queue_log">
  ## s3queue\_enable\_logging\_to\_s3queue\_log
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Habilita la escritura en system.s3queue\_log. El valor puede sobrescribirse para cada tabla mediante la configuración de la tabla

<div id="s3queue_keeper_fault_injection_probability">
  ## s3queue\_keeper\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Probabilidad de inyección de fallos en Keeper para S3Queue.

<div id="s3queue_migrate_old_metadata_to_buckets">
  ## s3queue\_migrate\_old\_metadata\_to\_buckets
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Migra la estructura antigua de metadatos de la tabla S3Queue a una nueva estructura

<div id="schema_inference_cache_require_modification_time_for_url">
  ## schema\_inference\_cache\_require\_modification\_time\_for\_url
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa el esquema de la caché para URL con validación de la hora de la última modificación (para URL con el encabezado Last-Modified)

<div id="schema_inference_use_cache_for_azure">
  ## schema\_inference\_use\_cache\_for\_azure
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa la caché durante la inferencia de esquemas al usar la función de tabla de Azure

<div id="schema_inference_use_cache_for_file">
  ## schema\_inference\_use\_cache\_for\_file
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa caché en la inferencia de esquemas al utilizar la función de tabla File

<div id="schema_inference_use_cache_for_hdfs">
  ## schema\_inference\_use\_cache\_for\_hdfs
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa la caché en la inferencia de esquemas al utilizar la función de tabla hdfs

<div id="schema_inference_use_cache_for_s3">
  ## schema\_inference\_use\_cache\_for\_s3
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa la caché durante la inferencia de esquema al usar la función de tabla S3

<div id="schema_inference_use_cache_for_url">
  ## schema\_inference\_use\_cache\_for\_url
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Utiliza la caché en la inferencia de esquemas al usar la función de tabla url

<div id="secondary_indices_enable_bulk_filtering">
  ## secondary\_indices\_enable\_bulk\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Un nuevo algoritmo de filtrado mediante índices de omisión de datos"}]}]} />

Habilita el algoritmo de filtrado masivo para índices. Se espera que siempre sea mejor, pero mantenemos esta configuración por compatibilidad y control.

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<Note>
  Esta configuración se comporta de forma distinta en SharedMergeTree y ReplicatedMergeTree; consulta [SharedMergeTree consistency](/es/products/cloud/features/infrastructure/shared-merge-tree#consistency) para obtener más información sobre el comportamiento de `select_sequential_consistency` en SharedMergeTree.
</Note>

Habilita o deshabilita la consistencia secuencial para las consultas `SELECT`. Requiere que `insert_quorum_parallel` esté deshabilitado (está habilitado de forma predeterminada).

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

Uso

Cuando la consistencia secuencial está habilitada, ClickHouse permite al cliente ejecutar la consulta `SELECT` solo en aquellas réplicas que contienen los datos de todas las consultas `INSERT` anteriores ejecutadas con `insert_quorum`. Si el cliente apunta a una réplica parcial, ClickHouse generará una excepción. La consulta `SELECT` no incluirá datos que aún no se hayan escrito en el quórum de réplicas.

Cuando `insert_quorum_parallel` está habilitado (valor predeterminado), `select_sequential_consistency` no funciona. Esto se debe a que las consultas paralelas `INSERT` pueden escribirse en distintos conjuntos de réplicas del quórum, por lo que no hay garantía de que una sola réplica haya recibido todas las escrituras.

Vea también:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [insert\_quorum\_parallel](#insert_quorum_parallel)

<div id="send_logs_level">
  ## send\_logs\_level
</div>

<SettingsInfoBlock type="LogsLevel" default_value="fatal" />

Envía los logs de texto del servidor al cliente con el nivel mínimo especificado. Valores válidos: 'trace', 'debug', 'information', 'warning', 'error', 'fatal', 'none'

<div id="send_logs_source_regexp">
  ## send\_logs\_source\_regexp
</div>

Envía los logs de texto del servidor cuya fuente coincida con la expresión regular especificada. Si está vacío, se incluyen todas las fuentes.

<div id="send_profile_events">
  ## send\_profile\_events
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Nueva configuración. Indica si se envían eventos de perfil a los clientes."}]}]} />

Habilita o deshabilita el envío de paquetes de [ProfileEvents](/es/resources/develop-contribute/native-protocol/server#profile-events) al cliente.

Esto se puede deshabilitar para reducir el tráfico de red para los clientes que no requieren eventos de perfil.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="send_progress_in_http_headers">
  ## send\_progress\_in\_http\_headers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Activa o desactiva las cabeceras de respuesta HTTP `X-ClickHouse-Progress` en las respuestas de `clickhouse-server`.

Para obtener más información, lea la [descripción de la interfaz HTTP](/es/concepts/features/interfaces/http).

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="send_table_structure_on_insert_with_inline_data">
  ## send\_table\_structure\_on\_insert\_with\_inline\_data
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración para controlar si el servidor envía la estructura de la tabla para las consultas INSERT con datos incluidos en la propia consulta."}]}]} />

Si está deshabilitada y la consulta INSERT contiene datos incluidos en la propia consulta, el servidor no enviará al cliente la estructura de la tabla ni los valores predeterminados de las columnas a través del protocolo nativo. En su lugar, el servidor analizará por sí mismo esos datos. Esto puede mejorar el rendimiento de muchas inserciones pequeñas a través del protocolo nativo.

<div id="send_timeout">
  ## send\_timeout
</div>

<SettingsInfoBlock type="Segundos" default_value="300" />

Tiempo de espera para enviar datos por la red, en segundos. Si un cliente necesita enviar datos pero no puede enviar ningún byte durante este intervalo, se produce una excepción. Si configura este ajuste en el cliente, también se establecerá `receive_timeout` para el socket en el extremo correspondiente de la conexión en el servidor.

<div id="serialize_query_plan">
  ## serialize\_query\_plan
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "NewSetting"}]}]} />

Serializa el plan de ejecución de la consulta para el procesamiento distribuido

<div id="serialize_string_in_memory_with_zero_byte">
  ## serialize\_string\_in\_memory\_with\_zero\_byte
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Serializa los valores String durante la agregación con un byte nulo al final. Actívela para mantener la compatibilidad al consultar un clúster con versiones incompatibles.

<div id="session_timezone">
  ## session\_timezone
</div>

Establece la zona horaria implícita de la sesión o consulta actual.
La zona horaria implícita es la que se aplica a los valores de tipo DateTime/DateTime64 que no tienen una zona horaria especificada explícitamente.
Este ajuste tiene prioridad sobre la zona horaria implícita configurada globalmente (a nivel del servidor).
Un valor de '' (cadena vacía) significa que la zona horaria implícita de la sesión o consulta actual es igual a la [zona horaria del servidor](/es/reference/settings/server-settings/settings#timezone).

Puede usar las funciones `timeZone()` y `serverTimeZone()` para obtener la zona horaria de la sesión y la del servidor.

Valores posibles:

* Cualquier nombre de zona horaria de `system.time_zones`, por ejemplo, `Europe/Berlin`, `UTC` o `Zulu`

Ejemplos:

```sql theme={null}
SELECT timeZone(), serverTimeZone() FORMAT CSV

"Europe/Berlin","Europe/Berlin"
```

```sql theme={null}
SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV

"Asia/Novosibirsk","Europe/Berlin"
```

Asigne la zona horaria de la sesión 'America/Denver' al `DateTime` interno sin especificar explícitamente una zona horaria:

```sql theme={null}
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV

1999-12-13 07:23:23.123
```

<Warning>
  No todas las funciones que analizan DateTime/DateTime64 respetan `session_timezone`. Esto puede dar lugar a errores sutiles.
  Consulte el siguiente ejemplo y su explicación.
</Warning>

```sql theme={null}
CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');

SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.

SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌───────────────────d─┬─timeZone()───────┐
│ 2000-01-01 00:00:00 │ Asia/Novosibirsk │
└─────────────────────┴──────────────────┘
```

Esto sucede debido a distintos procesos de análisis:

* `toDateTime()`, sin una zona horaria especificada explícitamente, usado en la primera consulta `SELECT`, respeta la configuración `session_timezone` y la zona horaria global.
* En la segunda consulta, un DateTime se interpreta a partir de un String y hereda el tipo y la zona horaria de la columna existente `d`. Por lo tanto, no se respetan la configuración `session_timezone` ni la zona horaria global.

**Véase también**

* [timezone](/es/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué ocurre cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (valor predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si se hubieran agotado los datos de origen.

<div id="shared_merge_tree_sequential_consistency_initial_parts_update_backoff_ms">
  ## shared\_merge\_tree\_sequential\_consistency\_initial\_parts\_update\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "50"},{"label": "Nueva configuración para reducir errores UNFINISHED esporádicos en consultas con consistencia secuencial para SharedMergeTree."}]}]} />

Retardo inicial, en milisegundos, para la actualización de partes al usar `select_sequential_consistency` con `SharedMergeTree`. Solo disponible en ClickHouse Cloud.

<div id="shared_merge_tree_sequential_consistency_max_parts_update_backoff_ms">
  ## shared\_merge\_tree\_sequential\_consistency\_max\_parts\_update\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1000"},{"label": "Nueva configuración para reducir errores UNFINISHED esporádicos en consultas con consistencia secuencial para SharedMergeTree."}]}]} />

Tiempo máximo de backoff, en milisegundos, para la actualización de partes al usar `select_sequential_consistency` con `SharedMergeTree`. Solo está disponible en ClickHouse Cloud.

<div id="shared_merge_tree_sequential_consistency_parts_update_max_retries">
  ## shared\_merge\_tree\_sequential\_consistency\_parts\_update\_max\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "Nueva configuración para reducir errores UNFINISHED esporádicos en consultas con consistencia secuencial de SharedMergeTree."}]}]} />

Número máximo de reintentos para actualizar las partes al usar `select_sequential_consistency` con `SharedMergeTree`. Solo disponible en ClickHouse Cloud.

<div id="shared_merge_tree_sync_parts_on_partition_operations">
  ## shared\_merge\_tree\_sync\_parts\_on\_partition\_operations
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "Nueva configuración. De forma predeterminada, las partes siempre se sincronizan"}]}]} />

Sincroniza automáticamente el conjunto de partes de datos tras las operaciones de partición MOVE|REPLACE|ATTACH en tablas SMT. Solo en Cloud

<div id="short_circuit_function_evaluation">
  ## short\_circuit\_function\_evaluation
</div>

<SettingsInfoBlock type="ShortCircuitFunctionEvaluation" default_value="enable" />

Permite evaluar las funciones [if](/es/reference/functions/regular-functions/conditional-functions#if), [multiIf](/es/reference/functions/regular-functions/conditional-functions#multiIf), [and](/es/reference/functions/regular-functions/logical-functions#and) y [or](/es/reference/functions/regular-functions/logical-functions#or) mediante [evaluación de cortocircuito](https://en.wikipedia.org/wiki/Short-circuit_evaluation). Esto ayuda a optimizar la ejecución de expresiones complejas en estas funciones y a evitar posibles excepciones (como una división por cero cuando no se esperaba).

Valores posibles:

* `enable` — Habilita la evaluación de cortocircuito para las funciones en las que resulta adecuada (pueden generar una excepción o tener un coste computacional elevado).
* `force_enable` — Habilita la evaluación de cortocircuito para todas las funciones.
* `disable` — Deshabilita la evaluación de cortocircuito.

<div id="short_circuit_function_evaluation_for_nulls">
  ## short\_circuit\_function\_evaluation\_for\_nulls
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Permite ejecutar funciones con argumentos Nullable solo en las filas donde todos los argumentos tienen valores distintos de NULL"}]}]} />

Optimiza la evaluación de funciones que devuelven NULL cuando cualquiera de sus argumentos es NULL. Cuando el porcentaje de valores NULL en los argumentos de la función supera el umbral `short_circuit_function_evaluation_for_nulls_threshold`, el sistema omite evaluar la función fila por fila. En su lugar, devuelve NULL de inmediato para todas las filas, evitando cálculos innecesarios.

<div id="short_circuit_function_evaluation_for_nulls_threshold">
  ## short\_circuit\_function\_evaluation\_for\_nulls\_threshold
</div>

<SettingsInfoBlock type="Double" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Umbral de la proporción de valores NULL para ejecutar funciones con argumentos Nullable solo en filas en las que todos los argumentos tienen valores distintos de NULL. Se aplica cuando la configuración short_circuit_function_evaluation_for_nulls está habilitada."}]}]} />

Umbral de la proporción de valores NULL para ejecutar funciones con argumentos Nullable solo en filas en las que todos los argumentos tienen valores distintos de NULL. Se aplica cuando la configuración short\_circuit\_function\_evaluation\_for\_nulls está habilitada.
Cuando la proporción de filas que contienen valores NULL con respecto al número total de filas supera este umbral, esas filas con valores NULL no se evaluarán.

<div id="show_data_lake_catalogs_in_system_tables">
  ## show\_data\_lake\_catalogs\_in\_system\_tables
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Deshabilita los catálogos de lago de datos en las tablas del sistema de forma predeterminada"}]}]} />

Permite mostrar catálogos de lago de datos en las tablas del sistema.

<div id="show_processlist_include_internal">
  ## show\_processlist\_include\_internal
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Nueva configuración."}]}]} />

Muestra los procesos auxiliares internos en la salida de la consulta `SHOW PROCESSLIST`.

Los procesos internos incluyen recargas de diccionarios, recargas de vistas materializadas actualizables, consultas `SELECT` auxiliares ejecutadas en consultas `SHOW ...`, y consultas auxiliares `CREATE DATABASE ...` ejecutadas internamente para gestionar tablas dañadas, entre otros.

<div id="show_table_uuid_in_table_create_query_if_not_nil">
  ## show\_table\_uuid\_in\_table\_create\_query\_if\_not\_nil
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.7"},{"label": "0"},{"label": "Deja de mostrar el UID de la tabla en su consulta CREATE para Engine=Atomic"}]}]} />

Configura cómo se muestra la consulta `SHOW TABLE`.

Valores posibles:

* 0 — La consulta se mostrará sin el UUID de la tabla.
* 1 — La consulta se mostrará con el UUID de la tabla.

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Para un único JOIN, en caso de ambigüedad entre identificadores, se prefiere la tabla de la izquierda

<div id="skip_redundant_aliases_in_udf">
  ## skip\_redundant\_aliases\_in\_udf
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Al habilitarse, permite usar la misma función definida por el usuario varias veces para varias columnas materializadas de la misma tabla."}]}]} />

Los alias redundantes se omiten (se sustituyen) en las funciones definidas por el usuario para simplificar su uso.

Posibles valores:

* 1 — Los alias se omiten (se sustituyen) en las UDF.
* 0 — Los alias no se omiten (se sustituyen) en las UDF.

**Ejemplo**

La diferencia entre tenerlo habilitado o deshabilitado:

Consulta:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Resultado:

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

Consulta:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

Resultado:

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="skip_unavailable_shards">
  ## skip\_unavailable\_shards
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Habilita o deshabilita la omisión silenciosa de segmentos no disponibles.

Un segmento se considera no disponible si ninguna de sus réplicas está disponible. Una réplica no está disponible en los siguientes casos:

* ClickHouse no puede conectarse a la réplica por cualquier motivo.

  Al conectarse a una réplica, ClickHouse realiza varios intentos. Si todos ellos fallan, la réplica se considera no disponible.

* La réplica no puede resolverse mediante DNS.

  Si el hostname de la réplica no puede resolverse mediante DNS, esto puede indicar las siguientes situaciones:

  * El host de la réplica no tiene un registro DNS. Esto puede ocurrir en sistemas con DNS dinámico, por ejemplo, [Kubernetes](https://kubernetes.io), donde los nodos pueden no resolverse durante una caída, y esto no es un error.

  * Error de configuración. El archivo de configuración de ClickHouse contiene un hostname incorrecto.

Valores posibles:

* 1 — omisión habilitada.

  Si un segmento no está disponible, ClickHouse devuelve un resultado basado en datos parciales y no informa de problemas de disponibilidad de nodos.

* 0 — omisión deshabilitada.

  Si un segmento no está disponible, ClickHouse lanza una excepción.

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="0" />

Tiempo de espera después de recibir una consulta en TCPHandler

<div id="sleep_in_send_data_ms">
  ## sleep\_in\_send\_data\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="0" />

Tiempo de espera durante el envío de datos en TCPHandler

<div id="sleep_in_send_tables_status_ms">
  ## sleep\_in\_send\_tables\_status\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="0" />

Tiempo de espera antes de enviar la respuesta de estado de las tablas en TCPHandler

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué ocurre si el número de filas recibidas antes de la ordenación supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción.
* `break`: detener la ejecución de la consulta y devolver el resultado parcial.

<div id="split_intersecting_parts_ranges_into_layers_final">
  ## split\_intersecting\_parts\_ranges\_into\_layers\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Permite dividir en capas los rangos de partes superpuestas durante la optimización FINAL"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "Permite dividir en capas los rangos de partes superpuestas durante la optimización FINAL"}]}]} />

Divide en capas los rangos de partes superpuestas durante la optimización FINAL

<div id="split_parts_ranges_into_intersecting_and_non_intersecting_final">
  ## dividir\_rangos\_de\_partes\_en\_intersectantes\_y\_no\_intersectantes\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Permite dividir los rangos de partes en intersectantes y no intersectantes durante la optimización FINAL"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "Permite dividir los rangos de partes en intersectantes y no intersectantes durante la optimización FINAL"}]}]} />

Dividir los rangos de partes en intersectantes y no intersectantes durante la optimización FINAL

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Controla si la función [splitBy\*()](/es/reference/functions/regular-functions/splitting-merging-functions) con el argumento `max_substrings` > 0 incluirá la cadena restante en el último elemento del array de resultados.

Valores posibles:

* `0` - La cadena restante no se incluirá en el último elemento del array de resultados.
* `1` - La cadena restante se incluirá en el último elemento del array de resultados. Este es el comportamiento de la función [`split()`](https://spark.apache.org/docs/3.1.2/api/python/reference/api/pyspark.sql.functions.split.html) de Spark y del método ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) de Python.

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Al iniciar el servidor, evita la programación de las vistas materializadas actualizables, como si se hubiera ejecutado SYSTEM STOP VIEWS. Después, puede iniciarlas manualmente con `SYSTEM START VIEWS` o `SYSTEM START VIEW <name>`. También se aplica a las vistas recién creadas. No tiene efecto sobre las vistas materializadas no actualizables.

<div id="storage_file_read_method">
  ## storage\_file\_read\_method
</div>

<SettingsInfoBlock type="LocalFSReadMethod" default_value="pread" />

Método de lectura de datos del archivo de almacenamiento; uno de los siguientes: `read`, `pread`, `mmap`. El método `mmap` no se aplica a clickhouse-server (está destinado a clickhouse-local).

<div id="storage_system_stack_trace_pipe_read_timeout_ms">
  ## storage\_system\_stack\_trace\_pipe\_read\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="100" />

Tiempo máximo para leer de una tubería y recibir información de los hilos al consultar la tabla `system.stack_trace`. Esta configuración se utiliza con fines de prueba y no está pensada para que los usuarios la cambien.

<div id="stream_flush_interval_ms">
  ## stream\_flush\_interval\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="7500" />

Funciona para tablas con streaming en caso de timeout, o cuando un hilo genera [max\_insert\_block\_size](#max_insert_block_size) filas.

El valor predeterminado es 7500.

Cuanto menor sea el valor, con mayor frecuencia se vacían los datos en la tabla. Establecer un valor demasiado bajo provoca un rendimiento deficiente.

<div id="stream_like_engine_allow_direct_select">
  ## stream\_like\_engine\_allow\_direct\_select
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.12"},{"label": "0"},{"label": "No permitir SELECT directo para Kafka/RabbitMQ/FileLog de forma predeterminada"}]}]} />

Permite realizar una consulta SELECT directa en los motores Kafka, RabbitMQ, FileLog, Redis Streams, S3Queue, AzureQueue y NATS. Si hay vistas materializadas asociadas, la consulta SELECT no está permitida aunque esta opción esté habilitada.
Si no hay vistas materializadas asociadas, habilitar esta opción permite leer datos. Ten en cuenta que, por lo general, los datos leídos se eliminan de la cola. Para evitarlo, los ajustes relacionados del motor deben configurarse correctamente.

<div id="stream_like_engine_insert_queue">
  ## stream\_like\_engine\_insert\_queue
</div>

Cuando un motor de tipo stream lee de varias colas, el usuario deberá seleccionar una cola en la que insertar al escribir. Se usa en Redis Streams y NATS.

<div id="stream_poll_timeout_ms">
  ## stream\_poll\_timeout\_ms
</div>

<SettingsInfoBlock type="Milisegundos" default_value="500" />

Tiempo de espera al consultar datos desde/hacia almacenamientos de streaming.

<div id="system_events_show_zero_values">
  ## system\_events\_show\_zero\_values
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite seleccionar eventos con valor cero de [`system.events`](/es/reference/system-tables/events).

Algunos sistemas de monitorización requieren que se les envíen todos los valores de las métricas en cada punto de control, incluso cuando el valor de la métrica es cero.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

**Ejemplos**

Consulta

```sql theme={null}
SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded';
```

Resultado

```text theme={null}
Ok.
```

Consulta

```sql theme={null}
SET system_events_show_zero_values = 1;
SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded';
```

Resultado

```text theme={null}
┌─event────────────────────┬─value─┬─description───────────────────────────────────────────┐
│ QueryMemoryLimitExceeded │     0 │ Number of times when memory limit exceeded for query. │
└──────────────────────────┴───────┴───────────────────────────────────────────────────────┘
```

<div id="system_metric_log_show_zero_values_in_histograms">
  ## system\_metric\_log\_show\_zero\_values\_in\_histograms
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Nueva configuración que controla si los datos de histogramas con valor cero se escriben en la columna anidada `histograms` de `system.metric_log`."}]}]} />

Controla si los datos de histogramas con valor cero se escriben en la columna anidada `histograms` de `system.metric_log`.

De forma predeterminada, se omiten los histogramas cuyo `count` total de observaciones es cero y, dentro de cada histograma emitido, también se omiten del map `histogram` las entradas de bucket sin observaciones. Habilite esta opción para escribir todos los histogramas y todos los buckets independientemente del recuento; es útil para sistemas de monitorización que requieren que cada métrica aparezca en cada punto de control.

Posibles valores:

* 0 — Deshabilitado. Los histogramas con `count = 0` no se emiten; los histogramas emitidos incluyen solo los buckets que recibieron al menos una observación.
* 1 — Habilitado. Se escriben todos los histogramas y cada límite de bucket aparece en `histogram`.

<div id="table_engine_read_through_distributed_cache">
  ## table\_engine\_read\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Permite leer desde la caché distribuida mediante motores de tabla / funciones de tabla (s3, azure, etc.)

<div id="table_function_remote_max_addresses">
  ## table\_function\_remote\_max\_addresses
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Establece el número máximo de direcciones generadas a partir de patrones para la función [remote](/es/reference/functions/table-functions/remote).

Valores posibles:

* Un entero positivo.

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="290" />

El tiempo, en segundos, que la conexión debe permanecer inactiva antes de que TCP comience a enviar sondas keepalive

<div id="temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## temporary\_data\_in\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

<SettingsInfoBlock type="UInt64" default_value="600000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "600000"},{"label": "Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos"}]}]} />

Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos

<div id="temporary_files_buffer_size">
  ## temporary\_files\_buffer\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1048576"},{"label": "Nueva configuración"}]}]} />

Tamaño del búfer para la escritura de archivos temporales. Un tamaño de búfer mayor implica menos llamadas al sistema, pero un mayor consumo de memoria.

<div id="temporary_files_codec">
  ## temporary\_files\_codec
</div>

<SettingsInfoBlock type="String" default_value="LZ4" />

Establece el códec de compresión para los archivos temporales utilizados en operaciones de ordenación y join en disco.

Valores posibles:

* LZ4 — Se aplica compresión [LZ4](https://en.wikipedia.org/wiki/LZ4_\(compression_algorithm\)).
* NONE — No se aplica compresión.

<div id="text_index_hint_max_selectivity">
  ## text\_index\_hint\_max\_selectivity
</div>

<SettingsInfoBlock type="Float" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0.2"},{"label": "Nueva configuración"}]}]} />

Selectividad máxima del filtro para utilizar la sugerencia generada a partir del índice de texto invertido.

<div id="text_index_like_max_postings_to_read">
  ## text\_index\_like\_max\_postings\_to\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "50"},{"label": "Nueva configuración"}]}]} />

Número máximo de listas de postings grandes que se pueden leer cuando está habilitada la evaluación de `LIKE` del índice de texto mediante dictionary scan.

Requiere que `use_text_index_like_evaluation_by_dictionary_scan` esté habilitado.

<div id="text_index_like_min_pattern_length">
  ## text\_index\_like\_min\_pattern\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "4"},{"label": "Nueva configuración"}]}]} />

Longitud mínima de la cadena alfanumérica buscada en un patrón LIKE/ILIKE necesaria para usar la evaluación de LIKE del índice de texto mediante el escaneo del diccionario.
Los patrones más cortos que este umbral coinciden con demasiados tokens del diccionario y se omiten para evitar escaneos costosos.

Requiere que `use_text_index_like_evaluation_by_dictionary_scan` esté habilitado.

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite o prohíbe los INSERT vacíos; está habilitado de forma predeterminada (genera un error si se realiza un insert vacío). Solo se aplica a los INSERT realizados con [`clickhouse-client`](/es/concepts/features/interfaces/cli) o mediante la [interfaz gRPC](/es/concepts/features/interfaces/grpc).

<div id="throw_on_error_from_cache_on_write_operations">
  ## throw\_on\_error\_from\_cache\_on\_write\_operations
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora los errores de la caché al escribir en caché durante las operaciones de escritura (INSERT, merges)

<div id="throw_on_max_partitions_per_insert_block">
  ## throw\_on\_max\_partitions\_per\_insert\_block
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite controlar el comportamiento cuando se alcanza `max_partitions_per_insert_block`.

Valores posibles:

* `true`  - Cuando un bloque de inserción alcanza `max_partitions_per_insert_block`, se lanza una excepción.
* `false` - Registra una advertencia cuando se alcanza `max_partitions_per_insert_block`.

<Tip>
  Esto puede ser útil si intentas entender el impacto en los usuarios al cambiar [`max_partitions_per_insert_block`](/es/reference/settings/session-settings#max_partitions_per_insert_block).
</Tip>

<div id="throw_on_unsupported_query_inside_transaction">
  ## throw\_on\_unsupported\_query\_inside\_transaction
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Lanza una excepción si se usa una consulta no compatible dentro de una transacció

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

<SettingsInfoBlock type="Seconds" default_value="10" />

Comprueba que la velocidad de ejecución no sea demasiado baja (no inferior a `min_execution_speed`)
una vez transcurrido el tiempo especificado en segundos.

<div id="timeout_overflow_mode">
  ## timeout\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué hacer si la consulta se ejecuta durante más tiempo que `max_execution_time` o si el
tiempo de ejecución estimado supera `max_estimated_execution_time`.

Valores posibles:

* `throw`: generar una excepción (por defecto).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

<div id="timeout_overflow_mode_leaf">
  ## timeout\_overflow\_mode\_leaf
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué sucede cuando la consulta en el nodo hoja tarda más que `max_execution_time_leaf`.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: detener la ejecución de la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

<div id="totals_auto_threshold">
  ## totals\_auto\_threshold
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

El umbral para `totals_mode = 'auto'`.
Consulte la sección «modificador WITH TOTALS».

<div id="totals_mode">
  ## totals\_mode
</div>

<SettingsInfoBlock type="TotalsMode" default_value="after_having_exclusive" />

Cómo calcular TOTALS cuando se usa HAVING, así como cuando están presentes max\_rows\_to\_group\_by y group\_by\_overflow\_mode = 'any'.
Consulte la sección «modificador WITH TOTALS».

<div id="trace_profile_events">
  ## trace\_profile\_events
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Habilita o deshabilita la recopilación de stacktraces en cada actualización de los profile events, junto con el nombre del profile event y el valor del incremento, y su envío a [trace\_log](/es/reference/system-tables/trace_log).

Valores posibles:

* 1 — Seguimiento de profile events habilitado.
* 0 — Seguimiento de profile events deshabilitado.

<div id="trace_profile_events_list">
  ## trace\_profile\_events\_list
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": ""},{"label": "Nueva configuración"}]}]} />

Cuando la configuración `trace_profile_events` está habilitada, limita los eventos rastreados a la lista especificada de nombres separados por comas.
Si `trace_profile_events_list` es una cadena vacía (valor predeterminado), rastrea todos los eventos de perfil.

Valor de ejemplo: 'DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes'

Usar esta configuración permite recopilar datos con mayor precisión para un gran número de consultas, ya que, de lo contrario, la enorme cantidad de eventos puede desbordar la cola interna del registro del sistema y hacer que se descarte una parte de ellos.

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Establece qué ocurre cuando la cantidad de datos supera uno de los límites.

Valores posibles:

* `throw`: lanzar una excepción (predeterminado).
* `break`: dejar de ejecutar la consulta y devolver el resultado parcial, como si los
  datos de origen se hubieran agotado.

<div id="transform_null_in">
  ## transform\_null\_in
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Habilita la igualdad entre valores [NULL](/es/reference/syntax#null) para el operador [IN](/es/reference/statements/in).

De forma predeterminada, los valores `NULL` no se pueden comparar porque `NULL` significa que el valor no está definido. Por lo tanto, la comparación `expr = NULL` siempre debe devolver `false`. Con esta configuración, `NULL = NULL` devuelve `true` para el operador `IN`.

Valores posibles:

* 0 — La comparación de valores `NULL` en el operador `IN` devuelve `false`.
* 1 — La comparación de valores `NULL` en el operador `IN` devuelve `true`.

**Ejemplo**

Considere la tabla `null_in`:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

Consulta:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

Resultado:

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

Consulta:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

Resultado:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**Véase también**

* [Procesamiento de NULL en los operadores IN](/es/reference/statements/in#null-processing)

<div id="traverse_shadow_remote_data_paths">
  ## traverse\_shadow\_remote\_data\_paths
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Recorre el directorio shadow al consultar system.remote_data_paths."}]}]} />

Recorre, además de los datos reales de la tabla, los datos congelados (directorio shadow) al consultar system.remote\_data\_paths

<div id="union_default_mode">
  ## union\_default\_mode
</div>

Establece un modo para combinar los resultados de las consultas `SELECT`. Esta configuración solo se utiliza con [UNION](/es/reference/statements/select/union) cuando no se especifica explícitamente `UNION ALL` o `UNION DISTINCT`.

Valores posibles:

* `'DISTINCT'` — ClickHouse devuelve las filas resultantes de combinar consultas, eliminando las filas duplicadas.
* `'ALL'` — ClickHouse devuelve todas las filas resultantes de combinar consultas, incluidas las filas duplicadas.
* `''` — ClickHouse genera una excepción cuando se usa con `UNION`.

Consulte ejemplos en [UNION](/es/reference/statements/select/union).

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Enviar un paquete desconocido en lugar del enésimo paquete de datos

<div id="update_parallel_mode">
  ## update\_parallel\_mode
</div>

<SettingsInfoBlock type="UpdateParallelMode" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "Nueva configuración"}]}]} />

Determina el comportamiento de las consultas `UPDATE` concurrentes.

Valores posibles:

* `sync` - ejecutar secuencialmente todas las consultas `UPDATE`.
* `auto` - ejecutar secuencialmente solo las consultas `UPDATE` con dependencias entre las columnas actualizadas en una consulta y las columnas usadas en las expresiones de otra consulta.
* `async` - no sincronizar las consultas `UPDATE`.

<div id="update_sequential_consistency">
  ## update\_sequential\_consistency
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Si está activado, el conjunto de partes se actualiza a la versión más reciente antes de ejecutar la actualización.

<div id="url_base">
  ## url\_base
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "Nueva configuración para especificar la URL base para resolver URL relativas en la table function url y el motor de tabla URL."}]}]} />

La URL base que se utiliza para resolver URL relativas en la [url](/es/reference/functions/table-functions/url) table function y el motor de tabla [URL](/es/reference/engines/table-engines/special/url).

Cuando se establece, las URL relativas se resuelven de la siguiente manera:

* URL relativa a la ruta (p. ej., `data.csv`): se combina con la ruta de la URL base según la RFC 3986. Todo lo que aparece después de la última `/` en la ruta base se sustituye por la URL relativa, por lo que la barra diagonal final importa: `https://example.com/dir/` + `data.csv` = `https://example.com/dir/data.csv`, pero `https://example.com/dir` + `data.csv` = `https://example.com/data.csv`. Si la base no tiene ruta (p. ej., `https://example.com`), se inserta una `/`: `https://example.com/data.csv`. Los segmentos de punto (`./` y `../`) de la URL relativa se normalizan: `https://example.com/dir/` + `../a.csv` = `https://example.com/a.csv`.
* URL relativa al host (p. ej., `/test/data.csv`): se resuelve a partir del esquema y el host de la URL base.
* URL relativa al esquema (p. ej., `//other.com/test/data.csv`): se resuelve usando el esquema de la URL base.
* Referencia de solo consulta (p. ej., `?x=1`): se añade a la ruta de la URL base (sustituyendo cualquier consulta o fragmento existente).
* Referencia de solo fragmento (p. ej., `#frag`): se añade a la URL base, conservando cualquier query string (sustituyendo cualquier fragmento existente).
* Referencia vacía: devuelve la URL base sin fragmento.

Por ejemplo, si `url_base` es `https://example.com/def/`, entonces:

* `data.csv` se resuelve en `https://example.com/def/data.csv`
* `/test/data.csv` se resuelve en `https://example.com/test/data.csv`
* `//other.com/test/data.csv` se resuelve en `https://other.com/test/data.csv`

<div id="use_async_executor_for_materialized_views">
  ## use\_async\_executor\_for\_materialized\_views
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Usa la ejecución asíncrona y, potencialmente, multihilo de la consulta de la vista materializada; puede acelerar el procesamiento de las vistas durante INSERT, pero también consumir más memoria.

<div id="use_cache_for_count_from_files">
  ## use\_cache\_for\_count\_from\_files
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Habilita el almacenamiento en caché del número de filas al contar desde archivos en las funciones de tabla `file`/`s3`/`url`/`hdfs`/`azureBlobStorage`.

Habilitado de forma predeterminada.

<div id="use_client_time_zone">
  ## use\_client\_time\_zone
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Utiliza la zona horaria del cliente para interpretar los valores de cadena DateTime, en lugar de usar la zona horaria del servidor.

<div id="use_compact_format_in_distributed_parts_names">
  ## use\_compact\_format\_in\_distributed\_parts\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "Usar el formato compacto para `INSERT` asíncronos en tablas Distributed de forma predeterminada"}]}]} />

Usa el formato compacto para almacenar bloques para `INSERT` en segundo plano (`distributed_foreground_insert`) en tablas con el engine `Distributed`.

Valores posibles:

* 0 — Usa el formato de directorio `user[:password]@host:port#default_database`.
* 1 — Usa el formato de directorio `[shard{shard_index}[_replica{replica_index}]]`.

<Note>
  - con `use_compact_format_in_distributed_parts_names=0`, los cambios en la definición del clúster no se aplicarán al `INSERT` en segundo plano.
  - con `use_compact_format_in_distributed_parts_names=1`, cambiar el orden de los nodos en la definición del clúster cambiará `shard_index`/`replica_index`, así que tenlo en cuenta.
</Note>

<div id="use_concurrency_control">
  ## use\_concurrency\_control
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "Habilita el control de concurrencia de forma predeterminada"}]}]} />

Respeta el control de concurrencia del servidor (consulta las configuraciones globales del servidor `concurrent_threads_soft_limit_num` y `concurrent_threads_soft_limit_ratio_to_cores`). Si se deshabilita, permite usar un mayor número de hilos incluso si el servidor está sobrecargado (no se recomienda para un uso normal y se necesita principalmente para pruebas).

Valor predeterminado en Cloud: `0`.

<div id="use_hash_table_stats_for_join_reordering">
  ## use\_hash\_table\_stats\_for\_join\_reordering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Nueva configuración. Anteriormente reflejaba la configuración 'collect_hash_table_stats_during_joins'."}]}]} />

Habilita el uso de las estadísticas recopiladas de la tabla hash para estimar la cardinalidad durante la reordenación de JOIN

<div id="use_hedged_requests">
  ## use\_hedged\_requests
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "1"},{"label": "Habilita la función Hedged Requests de forma predeterminada"}]}]} />

Habilita la lógica de Hedged Requests para consultas remotas. Permite establecer varias conexiones con distintas réplicas para una misma consulta.
Se habilita una nueva conexión si la(s) conexión(es) existente(s) con la(s) réplica(s) no se ha(n) establecido dentro de `hedged_connection_timeout`
o si no se han recibido datos dentro de `receive_data_timeout`. La consulta usa la primera conexión que envía un paquete de progreso no vacío (o un paquete de datos, si `allow_changing_replica_until_first_data_packet`);
las demás conexiones se cancelan. Se admiten consultas con `max_parallel_replicas > 1`.

Habilitado de forma predeterminada.

Valor predeterminado de Cloud: `0`.

<div id="use_hive_partitioning">
  ## use\_hive\_partitioning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Se habilitó la configuración de forma predeterminada."}]}, {"id": "row-2","items": [{"label": "24.8"},{"label": "0"},{"label": "Permite usar el particionado de estilo Hive para los motores File, URL, S3, AzureBlobStorage y HDFS."}]}]} />

Cuando está habilitada, ClickHouse detectará el particionado de estilo Hive en la ruta (`/name=value/`) en los motores de tabla de tipo archivo [File](/es/reference/functions/table-functions/file#hive-style-partitioning)/[S3](/es/reference/functions/table-functions/s3#hive-style-partitioning)/[URL](/es/reference/functions/table-functions/url#hive-style-partitioning)/[HDFS](/es/reference/functions/table-functions/hdfs#hive-style-partitioning)/[AzureBlobStorage](/es/reference/functions/table-functions/azureBlobStorage#hive-style-partitioning) y permitirá usar las columnas de partición como columnas virtuales en la consulta. Estas columnas virtuales tendrán los mismos nombres que en la ruta con particiones, pero comenzarán con `_`.

<div id="use_iceberg_metadata_files_cache">
  ## use\_iceberg\_metadata\_files\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Nueva opción"}]}]} />

Si está activado, la función de tabla Iceberg y el almacenamiento Iceberg pueden utilizar la caché de archivos de metadatos de Iceberg.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="use_iceberg_partition_pruning">
  ## use\_iceberg\_partition\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "Habilita la poda de particiones de Iceberg de forma predeterminada."}]}, {"id": "row-2","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración para la poda de particiones de Iceberg."}]}]} />

Usa la poda de particiones de Iceberg para las tablas Iceberg

<div id="use_index_for_in_with_subqueries">
  ## use\_index\_for\_in\_with\_subqueries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Intenta usar un índice si hay una subconsulta o una expresión de tabla en el lado derecho del operador IN.

<div id="use_index_for_in_with_subqueries_max_values">
  ## use\_index\_for\_in\_with\_subqueries\_max\_values
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

El tamaño máximo del conjunto en el lado derecho del operador IN para usar el índice de la tabla en el filtrado. Permite evitar la degradación del rendimiento y un mayor uso de memoria debidos a la preparación de estructuras de datos adicionales para consultas grandes. Cero significa que no hay límite.

<div id="use_join_disjunctions_push_down">
  ## use\_join\_disjunctions\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Se habilitó esta optimización."}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita el pushdown de las partes de las condiciones `JOIN` conectadas por `OR` hacia los lados de entrada correspondientes ("pushdown parcial").
Esto permite que los motores de almacenamiento filtren antes, lo que puede reducir la cantidad de datos leídos.
La optimización preserva la semántica y solo se aplica cuando cada rama `OR` de nivel superior aporta al menos un
predicado determinista para el lado de destino.

<div id="use_legacy_to_time">
  ## use\_legacy\_to\_time
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "Nueva configuración. Permite al usuario usar la lógica anterior de la función toTime, que funciona como toTimeWithFixedDate."}]}]} />

Cuando está habilitada, permite usar la función heredada toTime, que convierte una fecha con hora en una fecha fija determinada, conservando la hora.
De lo contrario, utiliza una nueva función toTime, que convierte distintos tipos de datos al tipo Time.
La antigua función heredada también está disponible incondicionalmente como toTimeWithFixedDate.

<div id="use_page_cache_for_disks_without_file_cache">
  ## use\_page\_cache\_for\_disks\_without\_file\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Se añadió la caché de páginas en espacio de usuario"}]}]} />

Utiliza la caché de páginas en espacio de usuario para discos remotos que no tienen habilitada la caché del sistema de archivos.

<div id="use_page_cache_for_local_disks">
  ## use\_page\_cache\_for\_local\_disks
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración para usar la caché de páginas en espacio de usuario para discos locales"}]}]} />

Usa la caché de páginas en espacio de usuario al leer desde discos locales. Se usa para pruebas y es poco probable que mejore el rendimiento en la práctica. Requiere `local_filesystem_read_method = 'pread'` o `'read'`. No desactiva la caché de páginas del SO; para ello se puede usar `min_bytes_to_use_direct_io`. Solo afecta a las tablas normales, no a la función de tabla `file()` ni al motor de tabla `File()`.

<div id="use_page_cache_for_object_storage">
  ## use\_page\_cache\_for\_object\_storage
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración para usar la caché de páginas en espacio de usuario para las funciones de tabla de almacenamiento de objetos"}]}]} />

Use la caché de páginas en espacio de usuario al leer desde funciones de tabla para almacenamiento de objetos (s3, azure, hdfs) y motores de tabla (S3, Azure, HDFS).

<div id="use_page_cache_with_distributed_cache">
  ## use\_page\_cache\_with\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Use la caché de páginas en espacio de usuario cuando se use distributed cache.

<div id="use_paimon_partition_pruning">
  ## use\_paimon\_partition\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Usar la poda de particiones de Paimon en las funciones de tabla de Paimon

<div id="use_parquet_metadata_cache">
  ## use\_parquet\_metadata\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Habilita la caché de metadatos de archivos Parquet."}]}]} />

Si está activado, el formato Parquet puede utilizar la caché de metadatos de Parquet.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="use_partition_pruning">
  ## use\_partition\_pruning
</div>

**Alias**: `use_partition_key`

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Nueva configuración que controla si MergeTree usa la clave de partición para la poda de particiones. 'use_partition_key' es un alias de esta configuración."}]}]} />

Usa la clave de partición para la poda de particiones durante la ejecución de consultas en tablas MergeTree.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_primary_key">
  ## use\_primary\_key
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Nueva configuración que controla si MergeTree utiliza la clave primaria para la poda a nivel de gránulo."}]}]} />

Utiliza la clave primaria para podar gránulos durante la ejecución de consultas en las tablas MergeTree.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_query_cache">
  ## use\_query\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Si está activado, las consultas `SELECT` pueden utilizar la [caché de consultas](/es/concepts/features/performance/caches/query-cache). Los parámetros [enable\_reads\_from\_query\_cache](#enable_reads_from_query_cache)
y [enable\_writes\_to\_query\_cache](#enable_writes_to_query_cache) controlan con mayor detalle cómo se utiliza la caché.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="use_query_condition_cache">
  ## use\_query\_condition\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "Una nueva optimización"}]}, {"id": "row-2","items": [{"label": "25.3"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita la [caché de condiciones de consulta](/es/concepts/features/performance/caches/query-condition-cache). La caché almacena rangos de gránulos en partes de datos que no cumplen la condición de la cláusula `WHERE`
y reutiliza esta información como un índice temporal para las consultas posteriores.

Valores posibles:

* 0 - Deshabilitado
* 1 - Habilitado

<div id="use_roaring_bitmap_iceberg_positional_deletes">
  ## use\_roaring\_bitmap\_iceberg\_positional\_deletes
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Usa roaring bitmap para las eliminaciones posicionales de Iceberg.

<div id="use_skip_indexes">
  ## use\_skip\_indexes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Utiliza índices de omisión de datos durante la ejecución de consultas.

Posibles valores:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_skip_indexes_for_disjunctions">
  ## use\_skip\_indexes\_for\_disjunctions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Nueva configuración"}]}]} />

Evalúa los filtros WHERE con condiciones mixtas AND y OR mediante índices de omisión. Ejemplo: WHERE A = 5 AND (B = 5 OR C = 5).
Si está deshabilitado, los índices de omisión se siguen usando para evaluar las condiciones WHERE, pero solo pueden contener cláusulas unidas con AND.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_skip_indexes_for_top_k">
  ## use\_skip\_indexes\_for\_top\_k
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Habilita de forma predeterminada el uso de índices de omisión de datos para el filtrado TopK"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita el uso de índices de omisión de datos para el filtrado TopK.

Cuando está habilitada, si existe un índice MinMax en la columna de una consulta `ORDER BY <column> LIMIT n`, el optimizador intentará usar el índice MinMax para omitir gránulos que no sean relevantes para el resultado final. Esto puede reducir la latencia de la consulta.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_skip_indexes_if_final">
  ## use\_skip\_indexes\_if\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "Cambio en el valor predeterminado del ajuste"}]}]} />

Controla si se usan índices de omisión al ejecutar una consulta con el modificador FINAL.

Los índices de omisión pueden excluir filas (gránulos) que contienen los datos más recientes, lo que podría dar lugar a resultados incorrectos en una consulta con el modificador FINAL. Cuando este ajuste está habilitado, los índices de omisión se aplican incluso con el modificador FINAL, lo que puede mejorar el rendimiento, pero con el riesgo de omitir actualizaciones recientes. Este ajuste debe habilitarse al mismo tiempo que el ajuste use\_skip\_indexes\_if\_final\_exact\_mode (está habilitado de forma predeterminada).

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_skip_indexes_if_final_exact_mode">
  ## use\_skip\_indexes\_if\_final\_exact\_mode
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "Cambio en el valor predeterminado de la configuración"}]}, {"id": "row-2","items": [{"label": "25.5"},{"label": "0"},{"label": "Esta configuración se introdujo para ayudar a que la consulta FINAL devuelva resultados correctos con índice de omisión"}]}]} />

Controla si los gránulos devueltos por un índice de omisión se expanden en las partes más recientes para devolver resultados correctos al ejecutar una consulta con el modificador FINAL.

El uso de índice de omisión puede excluir filas (gránulos) que contienen los datos más recientes, lo que podría dar lugar a resultados incorrectos. Esta configuración puede garantizar que se devuelvan resultados correctos al examinar las partes más recientes que se superponen con los rangos devueltos por el índice de omisión. Esta configuración solo debe deshabilitarse si, para una aplicación, son aceptables los resultados aproximados basados en la consulta del índice de omisión.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_skip_indexes_on_data_read">
  ## use\_skip\_indexes\_on\_data\_read
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "El índice de texto ahora es GA"}]}, {"id": "row-2","items": [{"label": "26.1"},{"label": "1"},{"label": "Habilitado de forma predeterminada"}]}, {"id": "row-3","items": [{"label": "25.9"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite usar índices de omisión de datos durante la lectura de datos.

Cuando está habilitada, los índices de omisión se evalúan dinámicamente en el momento en que se lee cada gránulo de datos, en lugar de analizarse por adelantado antes de que comience la ejecución de la consulta. Esto puede reducir la latencia de inicio de la consulta.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_statistics">
  ## use\_statistics
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Habilita esta optimización de forma predeterminada."}]}]} />

/// se prefiere a 'allow\_statistics\_optimize' por coherencia con 'use\_primary\_key' y 'use\_skip\_indexes'
Permite usar estadísticas para optimizar las consultas

<div id="use_statistics_cache">
  ## use\_statistics\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "Habilitar caché de estadísticas"}]}, {"id": "row-2","items": [{"label": "25.11"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Utilice la caché de estadísticas en una consulta para evitar la sobrecarga que supone cargar las estadísticas de todas las partes

<div id="use_statistics_for_part_pruning">
  ## use\_statistics\_for\_part\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva opción para usar estadísticas en la poda de partes durante la ejecución de consultas."}]}]} />

Usa estadísticas para descartar partes durante la ejecución de consultas.

Cuando está habilitado, la poda en las consultas SELECT usará estadísticas de columnas (p. ej., estadísticas MinMax) para eliminar partes que no puedan contener datos coincidentes antes de leer ningún dato.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_strict_insert_block_limits">
  ## use\_strict\_insert\_block\_limits
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración para aplicar límites mínimos y máximos estrictos al tamaño de bloque en las inserciones. Cuando min < max, prevalecen los límites máximos."}]}]} />

Cuando está habilitada, aplica estrictamente los límites mínimo y máximo del tamaño del bloque de inserción.

Se emite un bloque cuando:

* Umbrales mínimos (AND): Se alcanzan tanto min\_insert\_block\_size\_rows como min\_insert\_block\_size\_bytes.
* Umbrales máximos (OR): Se alcanza max\_insert\_block\_size\_rows o max\_insert\_block\_size\_bytes.

Cuando está deshabilitada, se emite un bloque cuando:

* Umbrales mínimos (OR): Se alcanza min\_insert\_block\_size\_rows o min\_insert\_block\_size\_bytes.

**Nota**: Si la configuración máxima es menor que la configuración mínima, prevalecen los límites máximos y los bloques se emitirán antes de alcanzar los umbrales mínimos.

**Nota**: Esta configuración se desactiva automáticamente para las inserciones asíncronas, porque las inserciones asíncronas añaden tokens de deduplicación por entrada que son incompatibles con la división de bloques necesaria para aplicar límites estrictos.

Deshabilitada de forma predeterminada.

<div id="use_structure_from_insertion_table_in_table_functions">
  ## use\_structure\_from\_insertion\_table\_in\_table\_functions
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.11"},{"label": "2"},{"label": "Mejora del uso de la estructura de la tabla de inserción en las funciones de tabla"}]}]} />

Utiliza la estructura de la tabla de inserción en lugar de inferir el esquema a partir de los datos. Posibles valores: 0 - deshabilitado, 1 - habilitado, 2 - auto

<div id="use_text_index_header_cache">
  ## use\_text\_index\_header\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "Nueva opción"}]}]} />

Indica si se usa una caché del encabezado deserializado del índice de texto.
Usar la caché del encabezado del índice de texto puede reducir significativamente la latencia y aumentar el rendimiento al trabajar con un gran número de consultas con índices de texto.

<div id="use_text_index_like_evaluation_by_dictionary_scan">
  ## use\_text\_index\_like\_evaluation\_by\_dictionary\_scan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva opción de configuración"}]}]} />

Habilita la evaluación de consultas LIKE/ILIKE mediante el análisis del diccionario del índice de texto invertido.

<div id="use_text_index_postings_cache">
  ## use\_text\_index\_postings\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "Nueva opción"}]}]} />

Si se debe usar una caché de listas de postings deserializadas del índice de texto.
Usar la caché de postings del índice de texto puede reducir significativamente la latencia y aumentar el rendimiento cuando se trabaja con un gran número de consultas sobre índices de texto.

<div id="use_text_index_tokens_cache">
  ## use\_text\_index\_tokens\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Indica si se debe usar una caché de información deserializada de los tokens del índice de texto.
Usar la caché de tokens del índice de texto puede reducir significativamente la latencia y aumentar el rendimiento al trabajar con una gran cantidad de consultas de índice de texto.

<div id="use_top_k_dynamic_filtering">
  ## use\_top\_k\_dynamic\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Habilita de forma predeterminada la optimización de filtrado dinámico para consultas TopK"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Habilita la optimización de filtrado dinámico al ejecutar una consulta `ORDER BY <column> LIMIT n`.

Cuando está habilitada, el ejecutor de la consulta intentará omitir gránulos y filas que no formarán parte de las `top N` filas finales del conjunto de resultados. Esta optimización es dinámica por naturaleza, y las mejoras de latencia dependen de la distribución de los datos y de la presencia de otros predicados en la consulta.

Valores posibles:

* 0 — Deshabilitado.
* 1 — Habilitado.

<div id="use_top_k_dynamic_filtering_for_variable_length_types">
  ## use\_top\_k\_dynamic\_filtering\_for\_variable\_length\_types
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Desactiva `use_top_k_dynamic_filtering` para columnas de ordenación de longitud variable (p. ej., `String`) de forma predeterminada; el comportamiento anterior hacía que la optimización se aplicara incondicionalmente y se conserva en `compatibility`."}]}]} />

Permite que `use_top_k_dynamic_filtering` se aplique cuando la columna de ordenación tiene un tipo de datos de longitud variable (p. ej., `String`, `Array`, `Map`, `Tuple` que contiene elementos de longitud variable).

Para estos tipos, la comparación del umbral por fila que realiza el filtro dinámico puede costar más de lo que ahorra cuando predomina el mínimo lexicográfico de la columna (p. ej., cadenas mayoritariamente vacías) y se pueden omitir pocos gránulos. En ese caso, el filtro dinámico empeora la latencia de la consulta en lugar de mejorarla.

Cuando este ajuste es `0`, el filtrado dinámico se restringe a columnas cuyos valores tienen un tamaño máximo fijo en memoria (números, `Date`, `DateTime`, `FixedString`, `Enum`, `Nullable` de esos tipos, `Tuple` de esos tipos). Cuando se establece en `1`, el filtrado dinámico también se aplica a tipos de longitud variable.

Valores posibles:

* 0 — Desactivado.
* 1 — Activado.

<div id="use_uncompressed_cache">
  ## use\_uncompressed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Indica si se debe usar una caché de bloques sin comprimir. Acepta 0 o 1. De forma predeterminada, 0 (deshabilitado).
El uso de la caché sin comprimir (solo para tablas de la familia MergeTree) puede reducir significativamente la latencia y aumentar el rendimiento al trabajar con una gran cantidad de consultas cortas. Habilite esta configuración para los usuarios que envían solicitudes cortas con frecuencia. Preste atención también al parámetro de configuración [uncompressed\_cache\_size](/es/reference/settings/server-settings/settings#uncompressed_cache_size) (solo se puede establecer en el archivo de configuración): el tamaño de los bloques de la caché sin comprimir. De forma predeterminada, es de 8 GiB. La caché sin comprimir se llena según sea necesario y los datos menos utilizados se eliminan automáticamente.

En las consultas que leen un volumen de datos al menos moderadamente grande (un millón de filas o más), la caché sin comprimir se deshabilita automáticamente para ahorrar espacio para las consultas realmente pequeñas. Esto significa que puede mantener siempre la configuración 'use\_uncompressed\_cache' establecida en 1.

<div id="use_variant_as_common_type">
  ## use\_variant\_as\_common\_type
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Mejora la usabilidad."}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "Permite usar Variant en if/multiIf cuando no hay un tipo común"}]}]} />

Permite usar el tipo `Variant` como tipo de resultado de las funciones [if](/es/reference/functions/regular-functions/conditional-functions#if)/[multiIf](/es/reference/functions/regular-functions/conditional-functions#multiIf)/[array](/es/reference/functions/regular-functions/array-functions)/[map](/es/reference/functions/regular-functions/tuple-map-functions) cuando no existe un tipo común para los tipos de argumento.

Ejemplo:

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(if(number % 2, number, range(number))) as variant_type FROM numbers(1);
SELECT if(number % 2, number, range(number)) as variant FROM numbers(5);
```

```text theme={null}
┌─variant_type───────────────────┐
│ Variant(Array(UInt64), UInt64) │
└────────────────────────────────┘
┌─variant───┐
│ []        │
│ 1         │
│ [0,1]     │
│ 3         │
│ [0,1,2,3] │
└───────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(multiIf((number % 4) = 0, 42, (number % 4) = 1, [1, 2, 3], (number % 4) = 2, 'Hello, World!', NULL)) AS variant_type FROM numbers(1);
SELECT multiIf((number % 4) = 0, 42, (number % 4) = 1, [1, 2, 3], (number % 4) = 2, 'Hello, World!', NULL) AS variant FROM numbers(4);
```

```text theme={null}
─variant_type─────────────────────────┐
│ Variant(Array(UInt8), String, UInt8) │
└──────────────────────────────────────┘

┌─variant───────┐
│ 42            │
│ [1,2,3]       │
│ Hello, World! │
│ ᴺᵁᴸᴸ          │
└───────────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(array(range(number), number, 'str_' || toString(number))) as array_of_variants_type from numbers(1);
SELECT array(range(number), number, 'str_' || toString(number)) as array_of_variants FROM numbers(3);
```

```text theme={null}
┌─array_of_variants_type────────────────────────┐
│ Array(Variant(Array(UInt64), String, UInt64)) │
└───────────────────────────────────────────────┘

┌─array_of_variants─┐
│ [[],0,'str_0']    │
│ [[0],1,'str_1']   │
│ [[0,1],2,'str_2'] │
└───────────────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(map('a', range(number), 'b', number, 'c', 'str_' || toString(number))) as map_of_variants_type from numbers(1);
SELECT map('a', range(number), 'b', number, 'c', 'str_' || toString(number)) as map_of_variants FROM numbers(3);
```

```text theme={null}
┌─map_of_variants_type────────────────────────────────┐
│ Map(String, Variant(Array(UInt64), String, UInt64)) │
└─────────────────────────────────────────────────────┘

┌─map_of_variants───────────────┐
│ {'a':[],'b':0,'c':'str_0'}    │
│ {'a':[0],'b':1,'c':'str_1'}   │
│ {'a':[0,1],'b':2,'c':'str_2'} │
└───────────────────────────────┘
```

<div id="use_variant_default_implementation_for_comparisons">
  ## use\_variant\_default\_implementation\_for\_comparisons
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "Habilita la implementación predeterminada para el tipo Variant en las funciones de comparación"}]}]} />

Habilita o deshabilita la implementación predeterminada para el tipo Variant en las funciones de comparación.

<div id="use_with_fill_by_sorting_prefix">
  ## use\_with\_fill\_by\_sorting\_prefix
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "Las columnas anteriores a las columnas WITH FILL de la cláusula ORDER BY constituyen el prefijo de ordenación. Las filas con valores distintos en el prefijo de ordenación se rellenan de forma independiente"}]}]} />

Las columnas anteriores a las columnas WITH FILL de la cláusula ORDER BY constituyen el prefijo de ordenación. Las filas con valores distintos en el prefijo de ordenación se rellenan de forma independiente

<div id="validate_enum_literals_in_operators">
  ## validate\_enum\_literals\_in\_operators
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Si está habilitado, valida los literales de enum en operadores como `IN`, `NOT IN`, `==`, `!=` con respecto al tipo enum y lanza una excepción si el literal no es un valor válido del enum.

<div id="validate_mutation_query">
  ## validate\_mutation\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Nueva configuración para validar las consultas de mutación de forma predeterminada."}]}]} />

Valida las consultas de mutación antes de aceptarlas. Las mutaciones se ejecutan en segundo plano, y ejecutar una consulta no válida hará que queden bloqueadas y requieran intervención manual.

Cambie esta configuración solo si encuentra un error que rompa la compatibilidad con versiones anteriores.

<div id="validate_polygons">
  ## validate\_polygons
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.4"},{"label": "1"},{"label": "Lanza una excepción si el polígono no es válido en la función pointInPolygon de forma predeterminada, en lugar de devolver resultados posiblemente incorrectos"}]}]} />

Habilita o deshabilita que se lance una excepción en la función [pointInPolygon](/es/reference/functions/regular-functions/geo/coordinates#pointinpolygon) si el polígono se autointerseca o es autotangente.

Valores posibles:

* 0 — El lanzamiento de excepciones está deshabilitado. `pointInPolygon` acepta polígonos no válidos y devuelve resultados posiblemente incorrectos para ellos.
* 1 — El lanzamiento de excepciones está habilitado.

<div id="variant_throw_on_type_mismatch">
  ## variant\_throw\_on\_type\_mismatch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nueva opción para controlar el comportamiento ante incompatibilidades de tipos en la implementación predeterminada de Variant"}]}]} />

Al aplicar una función a una columna [Variant](/es/reference/data-types/variant) mediante la implementación predeterminada,
determina qué ocurre con las filas cuyo tipo real es incompatible con la función:

* `true` (predeterminado) — lanzar una excepción.
* `false` — devolver `NULL` para esas filas.

<div id="vector_search_filter_strategy">
  ## vector\_search\_filter\_strategy
</div>

<SettingsInfoBlock type="VectorSearchFilterStrategy" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "Nueva configuración"}]}]} />

Si una consulta de búsqueda vectorial tiene una cláusula WHERE, esta configuración determina si se evalúa primero (pre-filtering) o si primero se comprueba el índice de similitud vectorial (post-filtering). Posibles valores:

* 'auto' - Posfiltrado (la semántica exacta puede cambiar en el futuro).
* 'postfilter' - Usa el índice de similitud vectorial para identificar los vecinos más cercanos y luego aplica otros filtros.
* 'prefilter' - Evalúa primero otros filtros y luego realiza una búsqueda por fuerza bruta para identificar a los vecinos.

<div id="vector_search_index_fetch_multiplier">
  ## vector\_search\_index\_fetch\_multiplier
</div>

**Alias**: `vector_search_postfilter_multiplier`

<SettingsInfoBlock type="Float" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Alias de la configuración 'vector_search_postfilter_multiplier'"}]}]} />

Multiplica por este número la cantidad de vecinos más cercanos recuperados del índice de similitud vectorial. Solo se aplica al posfiltrado con otros predicados o si la configuración 'vector\_search\_with\_rescoring = 1'.

<div id="vector_search_with_rescoring">
  ## vector\_search\_with\_rescoring
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Si ClickHouse aplica rescoring a las consultas que usan el índice de similitud vectorial.
Sin rescoring, el índice de similitud vectorial devuelve directamente las filas que contienen las mejores coincidencias.
Con rescoring, las filas se extrapolan al nivel de gránulo y se vuelven a comprobar todas las filas del gránulo.
En la mayoría de los casos, el rescoring solo mejora ligeramente la precisión, pero reduce significativamente el rendimiento de las consultas de búsqueda vectorial.
Nota: Una consulta ejecutada sin rescoring y con las réplicas paralelas habilitadas puede pasar a usar rescoring.

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

Esperar a que los cambios confirmados pasen a ser realmente visibles en la instantánea más reciente

<div id="wait_for_async_insert">
  ## wait\_for\_async\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Si es true, espera a que se procese la inserción asíncrona

<div id="wait_for_async_insert_timeout">
  ## wait\_for\_async\_insert\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

Tiempo de espera para el procesamiento de la inserción asíncrona

<div id="wait_for_window_view_fire_signal_timeout">
  ## wait\_for\_window\_view\_fire\_signal\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="10" />

Tiempo de espera para la señal de activación de window view en el procesamiento por tiempo de evento

<div id="webassembly_udf_max_fuel">
  ## webassembly\_udf\_max\_fuel
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "100000"},{"label": "Nueva configuración para limitar las instrucciones de CPU (fuel) por ejecución de una instancia de WebAssembly UDF."}]}]} />

Límite de fuel por ejecución de una instancia de WebAssembly UDF. Cada instrucción de WebAssembly consume una cierta cantidad de fuel.
Establezca 0 para desactivar el límite.

<div id="webassembly_udf_max_input_block_size">
  ## webassembly\_udf\_max\_input\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nueva configuración para limitar el tamaño del bloque de entrada de las UDF de WebAssembly."}]}]} />

Número máximo de filas que se pueden pasar a una UDF de WebAssembly en un solo bloque. Establezca 0 para procesar todas las filas de una sola vez.

<div id="webassembly_udf_max_instances">
  ## webassembly\_udf\_max\_instances
</div>

<SettingsInfoBlock type="UInt64" default_value="32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "32"},{"label": "Nueva opción de configuración para limitar el número de instancias de WebAssembly UDF que pueden ejecutarse en paralelo por función."}]}]} />

Número máximo de instancias de WebAssembly UDF que pueden ejecutarse en paralelo por función.

<div id="webassembly_udf_max_memory">
  ## webassembly\_udf\_max\_memory
</div>

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "134217728"},{"label": "Nueva configuración para limitar la memoria de cada instancia de WebAssembly UDF."}]}]} />

Límite de memoria en bytes para cada instancia de WebAssembly UDF.

<div id="window_view_clean_interval">
  ## window\_view\_clean\_interval
</div>

<SettingsInfoBlock type="Seconds" default_value="60" />

El intervalo de limpieza de window view, en segundos, para eliminar datos obsoletos.

<div id="window_view_heartbeat_interval">
  ## window\_view\_heartbeat\_interval
</div>

<SettingsInfoBlock type="Seconds" default_value="15" />

El intervalo de latido, en segundos, que indica que la consulta watch sigue activa.

<div id="workload">
  ## workload
</div>

<SettingsInfoBlock type="String" default_value="default" />

Nombre de la workload que se utilizará para acceder a los recursos

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Nueva configuración."}]}]} />

Escribir rutas completas (incluido s3://) en los archivos de metadatos de Iceberg.

<div id="write_through_distributed_cache">
  ## write\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Un ajuste para ClickHouse Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Permite escribir en la caché distribuida (la escritura en S3 también se realizará mediante la caché distribuida)

<div id="write_through_distributed_cache_buffer_size">
  ## write\_through\_distributed\_cache\_buffer\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "Nueva configuración de Cloud"}]}]} />

Solo tiene efecto en ClickHouse Cloud. Establece el tamaño del búfer para la caché distribuida con write-through. Si es 0, se usará el tamaño del búfer que se habría utilizado si no hubiera caché distribuida.

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

Permite seleccionar el valor máximo de window log de ZSTD (no se utilizará para la familia MergeTree)
