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

# Другие настройки сеанса

> Настройки сеанса ClickHouse в сгенерированной группе «Other».

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

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'}
        </div>;
};

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>Бета</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Возможность в статусе бета. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        Подробнее.
                    </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>
            Экспериментальная возможность. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">Подробнее.</a></u>
        </div>;
};

Эти настройки доступны в [system.settings](/docs/ru/reference/system-tables/settings) и автоматически генерируются на основе [исходного кода](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" />

Добавляет HTTP-заголовок CORS.

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

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

Если в индексе таблицы используется пространственно-заполняющая кривая, например `ORDER BY mortonEncode(x, y)` или `ORDER BY hilbertEncode(x, y)`, и запрос содержит условия для её аргументов, например `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`, используйте пространственно-заполняющую кривую для анализа индекса.

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

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "новая настройка"}]}]} />

Если включено, анализатор подставляет обычные (нематериализованные, непараметризованные) представления их определяющими подзапросами, что позволяет применять оптимизации поверх границ представлений, такие как pushdown предикатов и отсечение столбцов.

<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": "По умолчанию отключает ANY RIGHT и ANY FULL JOIN, чтобы избежать несогласованности"}]}]} />

Включает устаревшее поведение сервера ClickHouse в операциях `ANY INNER|LEFT JOIN`.

<Note>
  Используйте эту настройку только для обратной совместимости, если ваши сценарии использования зависят от устаревшего поведения `JOIN`.
</Note>

Когда устаревшее поведение включено:

* Результаты операций `t1 ANY LEFT JOIN t2` и `t2 ANY RIGHT JOIN t1` не совпадают, поскольку ClickHouse использует логику отображения ключей таблиц слева направо по схеме «многие к одному».
* Результаты операций `ANY INNER JOIN` содержат все строки из левой таблицы, как и операции `SEMI LEFT JOIN`.

Когда устаревшее поведение отключено:

* Результаты операций `t1 ANY LEFT JOIN t2` и `t2 ANY RIGHT JOIN t1` совпадают, поскольку ClickHouse использует логику, обеспечивающую отображение ключей по схеме «один ко многим» в операциях `ANY RIGHT JOIN`.
* Результаты операций `ANY INNER JOIN` содержат по одной строке на каждый ключ из левой и правой таблиц.

Возможные значения:

* 0 — Устаревшее поведение отключено.
* 1 — Устаревшее поведение включено.

См. также:

* [Строгость JOIN](/docs/ru/reference/statements/select/join#settings)

<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": "Новая настройка"}]}]} />

Ограничивает максимальный размер адаптивного буфера, используемого при записи в архивы (например, 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": "Новая настройка. Тип дескриптора для запросов Arrow Flight: 'path' или 'command'. Для Dremio требуется 'command'."}]}]} />

Тип дескриптора для запросов Arrow Flight. 'path' отправляет имя набора данных как дескриптор PATH. 'command' отправляет SQL-запрос как дескриптор команды (требуется для Dremio).

Возможные значения:

* 'path' — Использовать FlightDescriptor::Path (по умолчанию; работает с большинством серверов Arrow Flight)
* 'command' — Использовать FlightDescriptor::Command с запросом SELECT (требуется для Dremio)

<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": "новая настройка"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "новая настройка"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "По умолчанию настройка отключена"}]}]} />

Если установлено значение `true`, все потоки, выполняющие S3-запросы к одной и той же конечной точке резервного копирования, замедляются
после того, как любой S3-запрос сталкивается с ошибкой S3, допускающей повторную попытку, например 'Slow Down'.
Если установлено значение `false`, каждый поток обрабатывает задержку S3-запросов независимо от остальных.

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

<CloudOnlyBadge />

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

Действует только в ClickHouse Cloud. Количество фоновых потоков для упреждающей загрузки новых частей данных в файловый кэш, если включен параметр [cache\_populated\_by\_fetch](/docs/ru/reference/settings/merge-tree-settings#cache_populated_by_fetch). 0 — отключить.

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

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

Вычислять текстовую трассировку стека при исключениях во время выполнения запроса. Это значение используется по умолчанию. Для этого требуется поиск символов, который может замедлить фаззинг-тесты при выполнении большого количества ошибочных запросов. В обычных условиях отключать этот параметр не следует.

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

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

Отменяет HTTP-запросы только для чтения (например, SELECT), если клиент закрывает соединение, не дожидаясь ответа.

значение по умолчанию в Cloud: `1`.

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

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

Проверяет контрольные суммы при чтении. Этот параметр включен по умолчанию и в продакшне должен быть включен всегда. Не стоит ожидать какой-либо выгоды от отключения этого параметра. Его можно использовать только для экспериментов и бенчмарков. Параметр применим только к таблицам семейства MergeTree. Для других движков таблиц и при получении данных по сети контрольные суммы проверяются всегда.

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

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

Время ожидания соединения в миллисекундах, если пул соединений переполнен.

Возможные значения:

* Положительное целое число.
* 0 — бесконечный тайм-аут.

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

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

Максимальное число попыток установить соединение с каждой репликой для движка таблицы Distributed.

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

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

Если установлено значение `true`, запрос `SELECT` будет преобразован в конъюнктивную нормальную форму (CNF). В некоторых случаях запрос, переписанный в CNF, может выполняться быстрее (объяснение см. в этом [issue на Github](https://github.com/ClickHouse/ClickHouse/issues/11749)).

Например, обратите внимание, что следующий запрос `SELECT` не изменяется (поведение по умолчанию):

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

Результат:

```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                              │
└────────────────────────────────────────────────────────────────┘
```

Давайте зададим `convert_query_to_cnf` значение `true` и посмотрим, что изменится:

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

Обратите внимание, что предложение `WHERE` переписано в CNF, но результирующий набор остаётся тем же — булева логика не изменилась:

```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                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Возможные значения: true, false

<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": "Новая настройка"}]}]} />

Останавливать подсчёт, как только в функции `countMatches` шаблон регулярного выражения даёт совпадение нулевой длины.

<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": "Принудительно переписывать соединение через запятую в INNER JOIN"}]}]} />

Использовать INNER JOIN вместо соединения через запятую/CROSS JOIN, если в предложении WHERE есть условия соединения. Значения: 0 — не переписывать, 1 — переписывать по возможности для соединения через запятую/CROSS JOIN, 2 — принудительно переписывать все соединения через запятую, CROSS JOIN — по возможности

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

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

Позволяет считать типы данных без явных модификаторов [NULL or NOT NULL](/docs/ru/reference/statements/create/table#null-or-not-null-modifiers) в определении столбца типом [Nullable](/docs/ru/reference/data-types/nullable).

Возможные значения:

* 1 — Типы данных в определениях столбцов по умолчанию имеют тип `Nullable`.
* 0 — Типы данных в определениях столбцов по умолчанию не имеют тип `Nullable`.

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

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

Проверять переполнение при арифметических операциях и сравнениях 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": "По умолчанию включает дедупликацию для зависимых materialized view."}]}]} />

Включает или отключает проверку дедупликации для materialized view, получающих данные из таблиц Replicated\*.

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

Если параметр включен, ClickHouse выполняет дедупликацию блоков в materialized view, зависящих от таблиц Replicated\*.
Этот параметр полезен, чтобы materialized view не содержали дублирующихся данных, если операция вставки повторяется из-за сбоя.

**См. также**

* [Обработка NULL в операторах IN](/docs/ru/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<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": "Параметр, добавленный в 26.5, для управления поведением отсечения партиций в FINAL, которое было незаметно включено в 26.3 (https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242). Существенное семантическое изменение зафиксировано в блоке 26.3, поэтому `compatibility = '26.2'` отменяет его; эта запись нужна для того, чтобы проверка обновления с 26.4 принимала новое имя параметра."}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "Управляет безусловным отключением отсечения партиций в планировщике FINAL, когда столбец ключа партиции не входит в ключ сортировки. Само изменение поведения было незаметно включено в 26.3 через https:\/\/github.com\/ClickHouse\/ClickHouse\/pull\/98242; эта запись задним числом документирует его, чтобы `compatibility = '26.2'` восстанавливала поведение до регрессии (0 = выполнять отсечение до FINAL, быстро; 1 = откладывать отсечение, безопасно с точки зрения корректности)."}]}]} />

Когда параметр включен (по умолчанию), для запросов `FINAL` к таблицам, у которых
столбцы ключа партиции не входят в ключ сортировки, отсечение партиций не выполняется. Это безопасное с точки зрения корректности поведение,
добавленное в 26.3: `FINAL` может потребоваться выполнить дедупликацию строк с одинаковым
первичным ключом, но находящихся в разных партициях, а отсечение партиций молча исключило бы такие строки из
входных данных для дедупликации.

Когда параметр отключен, отсечение партиций применяется даже с `FINAL`, что восстанавливает поведение
до 26.3. Это может быть значительно быстрее для запросов с предикатами `WHERE` по
столбцу партиции, но корректно только в тех случаях, когда строки с одинаковым первичным ключом не могут существовать
в разных партициях — например, в таблицах журналов событий, где столбец партиции задается при вставке
и никогда не изменяется.

Этот параметр влияет только на партиционированные таблицы, у которых столбцы ключа партиции не входят
в ключ сортировки; для остальных таблиц отсечение партиций применяется всегда.

Возможные значения:

* 0 — Применять отсечение партиций до `FINAL` (поведение до 26.3, быстрее, но в общем случае небезопасно).
* 1 — Откладывать отсечение партиций до выполнения `FINAL` (по умолчанию, безопасно с точки зрения корректности).

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

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

Если установлено значение true, в результат запроса DESCRIBE включаются только имена столбцов и типы

<div id="dialect">
  ## диалект
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

Диалект, который будет использоваться для разбора запроса

<div id="discard_query_data">
  ## discard\_query\_data
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Новая настройка, позволяющая не отправлять клиенту строки результата запроса по собственному TCP-протоколу."}]}]} />

Если настройка включена, сервер не отправляет клиенту строки результата запроса. При этом запрос по-прежнему полностью выполняется и записывается в журнал на сервере, а клиент по-прежнему получает остальные пакеты.

Используется для теневого трафика, бенчмарков и фаззинга.

Не влияет на вторичные запросы.

Действует только для собственного TCP-протокола.

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Определяет, что происходит, когда объём данных превышает один из лимитов.

Возможные значения:

* `throw`: сгенерировать исключение (по умолчанию).
* `break`: прекратить выполнение запроса и вернуть частичный результат, как если бы
  исходные данные исчерпались.

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

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

Повышает производительность запросов FINAL, избегая слияний между разными партициями.

Если включено, при выполнении запросов SELECT FINAL части из разных партиций не будут сливаться друг с другом. Вместо этого слияние будет происходить отдельно в пределах каждой партиции. Это может значительно повысить производительность запросов при работе с партиционированными таблицами.

<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": "Новая настройка для управления поведением при несоответствии типов в стандартной реализации Dynamic"}]}]} />

При применении функции к столбцу [Dynamic](/docs/ru/reference/data-types/dynamic) со стандартной реализацией
управляет тем, что происходит со строками, фактический тип которых несовместим с функцией:

* `true` (по умолчанию) — сгенерировать исключение.
* `false` — вместо этого возвращать `NULL` для таких строк.

<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": "Новая настройка"}]}]} />

Если параметр включен, разрешены только идентификаторы, содержащие буквенно-цифровые символы и символы подчеркивания.

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

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

Включает или отключает пропуск пустых файлов в таблицах движка [URL](/docs/ru/reference/engines/table-engines/special/url).

Возможные значения:

* 0 — `SELECT` генерирует исключение, если пустой файл несовместим с запрошенным форматом.
* 1 — `SELECT` возвращает пустой результат, если файл пуст.

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

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

Если параметр включен, ClickHouse будет возвращать точное значение статистики rows\_before\_limit\_at\_least, но ценой того, что данные до LIMIT придется прочитать полностью

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Задает режим по умолчанию для запроса EXCEPT. Возможные значения: пустая строка, 'ALL', 'DISTINCT'. Если значение пустое, запрос без режима сгенерирует исключение.

<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": "Новая настройка"}]}]} />

Исключает указанные индексы пропуска данных из построения и хранения при операциях INSERT. Исключённые индексы пропуска данных всё равно будут строиться и сохраняться [при слиянии](/docs/ru/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) или явным
запросом [MATERIALIZE INDEX](/docs/ru/reference/statements/alter/skipping-index#materialize-index).

Не имеет эффекта, если [materialize\_skip\_indexes\_on\_insert](/docs/ru/reference/settings/session-settings/materialize#materialize_skip_indexes_on_insert) равно false.

Пример:

```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 will be not be updated upon insert
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- neither index would be updated on insert

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- only idx_b is updated

-- since it is a session setting it can be set on a per-query level
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; -- this query can be used to explicitly materialize the index

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- reset setting to default
```

<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": "новая настройка"}]}]} />

Выполнять некоррелированные подзапросы EXISTS как скалярные подзапросы. Как и для скалярных подзапросов, используется кэш, а к результату применяется свёртка констант.

Значение по умолчанию в Cloud: `0`.

<div id="explain_query_plan_default">
  ## explain\_query\_plan\_default
</div>

<SettingsInfoBlock type="ExplainQueryPlanDefault" default_value="pretty" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "pretty"},{"label": "Начиная с версии 26.7, для `EXPLAIN PLAN` по умолчанию используются `actions=1, compact=1, pretty=1`. Установите `legacy`, чтобы вернуть формат вывода, использовавшийся до 26.7."}]}]} />

Формат, используемый по умолчанию для `EXPLAIN PLAN`.

Возможные значения:

* `pretty` (значение по умолчанию с 26.7) — для `actions`, `compact` и `pretty` по умолчанию используется `true`, что даёт компактный, удобочитаемый план с аннотациями действий.
* `legacy` — формат вывода до 26.7.

Если в операторе `EXPLAIN` явно указаны параметры `actions`, `compact` или `pretty` (например, `EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...`), они всегда переопределяют эту настройку.

Для `EXPLAIN PLAN` с `json = 1` или `distributed = 1` сохраняются прежние значения по умолчанию (`legacy`, до 26.7) независимо от этой настройки, если только `actions`, `compact` или `pretty` не заданы явно. Формат `pretty` не может представлять результаты JSON или распределённые планы по сегментам, поэтому эти режимы корректно отображаются только в формате `legacy`.

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

**Псевдонимы**: `extract_kvp_max_pairs_per_row`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Максимальное количество пар, которое может вернуть функция `extractKeyValuePairs`. Используется как защита от чрезмерного потребления памяти."}]}]} />

Максимальное количество пар, которое может вернуть функция `extractKeyValuePairs`. Используется как защита от чрезмерного потребления памяти.

<div id="extremes">
  ## extremes
</div>

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

Определяет, нужно ли учитывать экстремальные значения (минимальные и максимальные значения в столбцах результата запроса). Принимает значения 0 или 1. По умолчанию — 0 (отключено).
Подробнее см. в разделе «Экстремальные значения».

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

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

Принудительно отправляет запрос на устаревшую реплику, если актуальные данные недоступны. См. [Репликация](/docs/ru/reference/engines/table-engines/mergetree-family/replication).

ClickHouse выбирает наиболее подходящую из устаревших реплик таблицы.

Используется при выполнении `SELECT` из distributed таблицы, указывающей на реплицируемые таблицы.

По умолчанию: 1 (включено).

<div id="file_like_engine_default_partition_strategy">
  ## file\_like\_engine\_default\_partition\_strategy
</div>

<SettingsInfoBlock type="FileLikeEngineDefaultPartitionStrategy" default_value="hive" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "hive"},{"label": "Стратегия партиционирования по умолчанию для file-like движков таблиц (S3, AzureBlobStorage и т. д.) изменена с `wildcard` на `hive`, если `partition_strategy` не указана."}]}]} />

Стратегия партиционирования по умолчанию для file-like движков.

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

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

Максимальное количество операций предварительного чтения. Ноль означает отсутствие ограничений. Если нужно ограничить количество операций предварительного чтения, рекомендуется использовать настройку `filesystem_prefetches_max_memory_usage`

<div id="final">
  ## final
</div>

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

Автоматически применяет модификатор [FINAL](/docs/ru/reference/statements/select/from#final-modifier) ко всем таблицам в запросе, для которых применим [FINAL](/docs/ru/reference/statements/select/from#final-modifier), включая таблицы, участвующие в JOIN, таблицы в подзапросах, а также
distributed таблицы.

Возможные значения:

* 0 - отключено
* 1 - включено

Пример:

```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": "Новая настройка для синхронной финализации частей проекций во время INSERT, чтобы снизить пиковое потребление памяти."}]}]} />

Если настройка включена, части проекций финализируются синхронно во время INSERT, что снижает пиковое потребление памяти ценой уменьшения параллелизма загрузки в S3. По умолчанию выходной поток каждой проекции остаётся активным до тех пор, пока не будет финализирована вся часть (включая все проекции), что позволяет выполнять параллельно перекрывающиеся загрузки в S3, но увеличивает пиковое потребление памяти пропорционально числу проекций. Эта настройка влияет только на INSERT; слияния и мутации уже финализируют проекции синхронно.

<div id="flatten_nested">
  ## flatten\_nested
</div>

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

Задаёт формат данных для столбцов типа [Nested](/docs/ru/reference/data-types/nested-data-structures/index).

Возможные значения:

* 1 — столбец Nested преобразуется в отдельные массивы.
* 0 — столбец Nested остаётся единым массивом кортежей.

**Использование**

Если для этой настройки установлено значение `0`, можно использовать произвольный уровень вложенности.

**Примеры**

Запрос:

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

Результат:

```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 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

Запрос:

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

Результат:

```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="fsync_metadata">
  ## fsync\_metadata
</div>

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

Включает или отключает [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) при записи файлов `.sql`. По умолчанию включено.

Его имеет смысл отключить, если на сервере есть миллионы маленьких таблиц, которые постоянно создаются и удаляются.

<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": "Новая настройка для устаревшего поведения, разрешающая недопустимые входные данные для функций h3"}]}]} />

Если false, функции h3, например h3CellAreaM2, генерируют исключение при недопустимых входных данных. Если true, они возвращают 0 или значение по умолчанию.

<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": "Увеличена точность по умолчанию."}]}]} />

Если все четыре аргумента функций `geoDistance`, `greatCircleDistance`, `greatCircleAngle` имеют тип Float64, то возвращается Float64, а для внутренних вычислений используется двойная точность. В предыдущих версиях ClickHouse эти функции всегда возвращали Float32.

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<BetaBadge />

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "Новая настройка для устаревшего поведения, позволяющая задать порядок аргументов lon и lat"}]}]} />

Функция 'geoToH3' принимает (lon, lat), если установлено значение 'lon\_lat', и (lat, lon), если установлено значение 'lat\_lon'.

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

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

Максимальное количество разрешённых адресов (для внешних хранилищ, табличных функций и т. д.).

<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": "новая настройка"}]}]} />

Функция 'h3ToGeo' возвращает (lon, lat), если установлено значение true, иначе — (lat, lon).

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

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

Тайм-аут в миллисекундах на получение пакета Hello от реплик во время рукопожатия.

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "Начинать новое соединение в Hedged requests через 50 мс вместо 100, чтобы привести в соответствие с предыдущим тайм-аутом подключения"}]}]} />

Тайм-аут на установление соединения с репликой для Hedged requests

<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": "Новая настройка, ограничивающая количество совпадений подсветки на строку, чтобы предотвратить чрезмерное использование памяти."}]}]} />

Задаёт максимальное количество совпадений подсветки на строку в функции [highlight](/docs/ru/reference/functions/regular-functions/string-search-functions#highlight). Используйте её, чтобы предотвратить чрезмерное использование памяти при подсветке часто повторяющихся шаблонов в больших текстах.

Возможные значения:

* Положительное целое число.

<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": "Новая настройка. Ранее это значение при необходимости указывалось в CREATE INDEX, а по умолчанию составляло 64."}]}]} />

Размер динамического списка кандидатов при поиске по индексу векторного сходства, также называемый `ef_search`.

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

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

Время действия HSTS. Значение 0 отключает HSTS.

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

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

Тайм-аут закрытия бездействующих TCP-соединений по истечении указанного количества секунд.

Возможные значения:

* Положительное целое число (0 — закрыть немедленно, через 0 секунд).

<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": "новая настройка"}]}]} />

Если включено, добавляет 'ORDER BY rand()' в SELECT-запросы без предложения ORDER BY.
Применяется только при глубине подзапроса = 0. Подзапросы и INSERT INTO ... SELECT не затрагиваются.
Если конструкция верхнего уровня — UNION, 'ORDER BY rand()' добавляется во все дочерние части независимо.
Полезно только для тестирования и разработки (отсутствие ORDER BY — источник недетерминированных результатов запроса).

<div id="interactive_delay">
  ## interactive\_delay
</div>

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

Интервал в микросекундах для проверки отмены выполнения запроса и отправки Прогресса.

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

Задаёт режим по умолчанию для запроса INTERSECT. Возможные значения: пустая строка, 'ALL', 'DISTINCT'. Если указана пустая строка, запрос без режима сгенерирует исключение.

<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": "новая настройка"}]}]} />

Если включено, функции 'least' и 'greatest' возвращают NULL, если один из аргументов равен 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": "Эта настройка добавлена только из соображений совместимости. Имеет смысл установить значение 'true' при выполнении rolling update кластера с версии ниже 21.7 на версию выше"}]}]} />

Использует в именах столбцов больших литералов `Tuple` имена всех элементов вместо хеша. Эта настройка существует только из соображений совместимости. Имеет смысл установить значение 'true' при выполнении rolling update кластера с версии ниже 21.7 на версию выше.

<div id="limit">
  ## limit
</div>

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

Задаёт максимальное количество строк в результате запроса. Корректирует значение, заданное оператором [LIMIT](/docs/ru/reference/statements/select/limit), так что ограничение, указанное в запросе, не может превышать значение, заданное этой настройкой.

Возможные значения:

* 0 — количество строк не ограничено.
* Положительное целое число.

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

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

Асинхронно загружать метки MergeTree

Значение по умолчанию в Cloud: `1`.

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

Определяет, сколько секунд запрос на блокировку ожидает, прежде чем завершиться ошибкой.

Тайм-аут блокировки используется для защиты от взаимных блокировок при выполнении операций чтения и записи в таблицах. Когда время ожидания истекает и запрос на блокировку завершается ошибкой, сервер ClickHouse генерирует исключение "Locking attempt timed out! Possible deadlock avoided. Client should retry." с кодом ошибки `DEADLOCK_AVOIDED`.

Возможные значения:

* Положительное целое число (в секундах).
* 0 — тайм-аут блокировки отсутствует.

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1000"},{"label": "Новая настройка"}]}]} />

Когда используется механизм приоритизации запросов (см. настройку `priority`), запросы с низким приоритетом ждут завершения запросов с более высоким приоритетом. Эта настройка указывает время ожидания.

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Новая экспериментальная настройка."}]}]} />

Формирует распределённый план запроса.

<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": "Новая настройка"}]}]} />

При создании таблицы `Merge` без явного указания схемы или при использовании табличной функции `merge` схема определяется как объединение не более указанного количества подходящих таблиц.
Если таблиц больше, схема будет определена по первым таблицам в указанном количестве.

<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": "Новая настройка"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "Новая настройка"}]}]} />

Если параметр включен, таблицы MongoDB возвращают ошибку, когда не удается сформировать запрос MongoDB. В противном случае ClickHouse читает всю таблицу и обрабатывает ее локально. Этот параметр не действует, если `allow_experimental_analyzer=0`.

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

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

Не добавлять псевдонимы в список выражений верхнего уровня при переписывании запроса с несколькими JOIN

<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": "Приводить имена функций к каноническому виду; это требовалось для маршрутизации запросов к проекциям"}]}]} />

Приводить имена функций к каноническому виду

<div id="offset">
  ## offset
</div>

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

Задаёт количество строк, которые нужно пропустить перед тем, как запрос начнёт возвращать строки. Корректирует смещение, заданное оператором [OFFSET](/docs/ru/reference/statements/select/offset), поэтому эти два значения суммируются.

Возможные значения:

* 0 — строки не пропускаются.
* Положительное целое число.

**Пример**

Входная таблица:

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

Запрос:

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

Результат:

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "-1"},{"label": "Новая настройка"}]}]} />

Чтение указанного снимка на уровне запроса для инкрементального режима Paimon. Если значение >0, модуль чтения будет получать только дельту
для указанного snapshot\_id, не продвигая зафиксированную водяную метку.
По умолчанию: -1 (отключено)

<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": "Разрешает параллелизм при выполнении запросов, читающих из file/url/S3 и т. д. Это может изменить порядок строк."}]}]} />

Распараллеливает вывод на этапе чтения из хранилища. Позволяет, где это возможно, распараллеливать обработку запроса сразу после чтения из хранилища

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

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

Позволяет запросу вернуть частичный результат после отмены.

<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": "Новая настройка."}]}]} />

Записывает в журнал статистику индекса по каждой части

<div id="poll_interval">
  ## poll\_interval
</div>

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

Блокирует сервер в цикле ожидания запроса на указанное количество секунд.

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "Новая настройка для указания исходного диалекта SQL для транспайлера polyglot."}]}]} />

Исходный диалект SQL для транспайлера polyglot (например, 'sqlite', 'mysql', 'postgresql', 'snowflake', 'duckdb').

<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": "Новая настройка"}]}]} />

Приблизительная вероятность сбоя при выполнении внутренних запросов PostgreSQL (для репликации). Допустимое значение — в интервале \[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": "Новая настройка для сбора статистики селективности предикатов в system.predicate_statistics_log"}]}]} />

Собирает статистику селективности предикатов в `system.predicate_statistics_log`. Если установлено значение N > 0, выборка включает примерно 1/N запросов (по Query id). 0 означает, что сбор отключён.

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

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

Максимальный размер буфера предвыборки для чтения из файловой системы. Значения свыше 256 МиБ принудительно ограничиваются до 256 МиБ, так как буфер чтения не требует большего размера.

<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": "Улучшен пользовательский опыт."}]}]} />

Позволяет выводить имена глубоко вложенных типов в удобочитаемом виде с отступами в запросе `DESCRIBE` и функции `toTypeName()`.

Пример:

```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" />

Приоритет запроса. 1 — наивысший приоритет, большее значение — более низкий приоритет; 0 — приоритеты не используются.

<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": "Новая настройка"}]}]} />

Включает передачу ролей пользователя от узла-инициатора на другие узлы во время выполнения запроса.

<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": "Новая настройка"}]}]} />

Интервал в миллисекундах, с которым собираются данные [query\_metric\_log](/docs/ru/reference/system-tables/query_metric_log) для отдельных запросов.

Если задано любое отрицательное значение, используется значение `collect_interval_milliseconds` из [настройки query\_metric\_log](/docs/ru/reference/settings/server-settings/settings#query_metric_log), а если оно отсутствует — значение 1000 по умолчанию.

Чтобы отключить сбор данных для отдельного запроса, установите `query_metric_log_interval` в 0.

Значение по умолчанию: -1

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

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

Время ожидания в очереди запросов, если число одновременных запросов превышает максимальное.

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

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

Время ожидания при чтении из RabbitMQ перед повторной попыткой.

<div id="readonly">
  ## readonly
</div>

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

0 — ограничений режима «только для чтения» нет. 1 — только запросы на чтение, а также изменение явно разрешённых настроек. 2 — только запросы на чтение, а также изменение настроек, кроме настройки 'readonly'.

<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": "Максимальное число итераций для определения типов столбцов в рекурсивных CTE с помощью итеративного getLeastSupertype"}]}]} />

Максимальное количество итераций для определения типов столбцов в рекурсивных CTE. Типы столбцов определяются итеративным применением `getLeastSupertype` к нерекурсивной и рекурсивной частям UNION ALL до достижения сходимости. Установите 0, чтобы отключить расширение типов и использовать только типы из нерекурсивной части.

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

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

Устанавливает максимальное число совпадений одного регулярного выражения для одной строки. Используйте эту настройку, чтобы предотвратить переполнение памяти при использовании жадного регулярного выражения в функции [extractAllGroupsHorizontal](/docs/ru/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal).

Возможные значения:

* Положительное целое число.

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

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

Отклонять шаблоны, проверка которых с помощью hyperscan, вероятно, потребует больших затрат ресурсов (из-за взрывного роста числа состояний NFA)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

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

Если после повторного слияния использование памяти не уменьшится в указанное число раз, повторное слияние будет отключено.

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

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

Минимальное количество байт для удалённого чтения (url, s3), при котором выполняется seek вместо чтения с пропуском данных.

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **Тип:** String

* **Значение по умолчанию:** Пустая строка

Эта настройка позволяет задать шаблон переименования файлов, обработанных табличной функцией `file`. Если параметр задан, все файлы, прочитанные табличной функцией `file`, будут переименованы по указанному шаблону с плейсхолдерами, но только если их обработка завершилась успешно.

<div id="placeholders">
  ### Плейсхолдеры
</div>

* `%a` — Полное имя исходного файла (например, "sample.csv").
* `%f` — Имя исходного файла без расширения (например, "sample").
* `%e` — Расширение исходного файла с точкой (например, ".csv").
* `%t` — Временная метка (в микросекундах).
* `%%` — Знак процента ("%").

<div id="example">
  ### Пример
</div>

* Опция: `--rename_files_after_processing="processed_%f_%t%e"`

* Запрос: `SELECT * FROM file('sample.csv')`

Если файл `sample.csv` успешно прочитан, он будет переименован в `processed_sample_1683473210851438.csv`

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

Указывает, сколько времени (в секундах) ждать, пока неактивные реплики выполнят запросы [`ALTER`](/docs/ru/reference/statements/alter/index), [`OPTIMIZE`](/docs/ru/reference/statements/optimize) или [`TRUNCATE`](/docs/ru/reference/statements/truncate).

Возможные значения:

* `0` — Не ждать.
* Отрицательное целое число — Ждать неограниченно долго.
* Положительное целое число — Количество секунд ожидания.

<div id="reserve_memory">
  ## reserve\_memory
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Новая настройка для резервирования памяти под определённую рабочую нагрузку перед запуском запроса."}]}]} />

Используется в планировании рабочих нагрузок. Минимальный объём оперативной памяти, резервируемый для выполнения запроса на одном сервере. Резервирование выполняется через иерархию WORKLOAD с использованием значения настройки запроса `workload`.
Если для рабочей нагрузки недостаточно доступной памяти, запрос не запускается и остаётся в состоянии pending, пока резервирование не станет возможным.
Значение `0` означает, что резервирование не выполняется.
Эта настройка действует только в том случае, если создан ресурс MEMORY RESERVATION.

<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": "Новая настройка"}]}]} />

Заменяет движок таблицы Replicated*MergeTree на Shared*MergeTree при RESTORE.

Значение по умолчанию в Cloud: `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Определяет, что делать, если объём результата превышает одно из ограничений.

Возможные значения:

* `throw`: сгенерировать исключение (по умолчанию).
* `break`: остановить выполнение запроса и вернуть частичный результат, как если бы
  исходные данные были исчерпаны.

Использование 'break' похоже на использование LIMIT. `Break` прерывает выполнение только на уровне
блока. Это означает, что количество возвращённых строк будет больше, чем
[`max_result_rows`](/docs/ru/reference/settings/session-settings/max-result#max_result_rows), кратно [`max_block_size`](/docs/ru/reference/settings/session-settings/max#max_block_size)
и зависит от [`max_threads`](/docs/ru/reference/settings/session-settings/max-threads#max_threads).

**Пример**

```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="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": "Возвращает точное значение статистики rows_before_aggregation; показывает количество строк, прочитанных до агрегации"}]}]} />

Если включено, ClickHouse будет возвращать точное значение статистики rows\_before\_aggregation, которая показывает количество строк, прочитанных до агрегации

<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": "Новый алгоритм фильтрации с использованием индексов пропуска данных"}]}]} />

Включает алгоритм пакетной фильтрации для индексов. Предполагается, что он всегда эффективнее, но эта настройка оставлена для совместимости и дополнительного контроля.

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

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

<Note>
  Эта настройка работает по-разному в SharedMergeTree и ReplicatedMergeTree; подробнее о поведении `select_sequential_consistency` в SharedMergeTree см. в разделе [SharedMergeTree consistency](/docs/ru/products/cloud/features/infrastructure/shared-merge-tree#consistency).
</Note>

Включает или отключает последовательную согласованность для запросов `SELECT`. Требует, чтобы `insert_quorum_parallel` был отключен (по умолчанию он включен).

Возможные значения:

* 0 — отключено.
* 1 — включено.

Использование

Когда последовательная согласованность включена, ClickHouse позволяет клиенту выполнять запрос `SELECT` только на тех репликах, которые содержат данные из всех предыдущих запросов `INSERT`, выполненных с `insert_quorum`. Если клиент обращается к неполной реплике, ClickHouse выдаст исключение. Запрос `SELECT` не будет включать данные, которые еще не были записаны в кворум реплик.

Когда `insert_quorum_parallel` включен (по умолчанию), `select_sequential_consistency` не работает. Это связано с тем, что параллельные запросы `INSERT` могут записываться в разные наборы кворумных реплик, поэтому нет гарантии, что одна реплика получит все записи.

См. также:

* [insert\_quorum](/docs/ru/reference/settings/session-settings/insert-quorum#insert_quorum)
* [insert\_quorum\_timeout](/docs/ru/reference/settings/session-settings/insert-quorum#insert_quorum_timeout)
* [insert\_quorum\_parallel](/docs/ru/reference/settings/session-settings/insert-quorum#insert_quorum_parallel)

<div id="session_timezone">
  ## session\_timezone
</div>

<BetaBadge />

Задаёт неявный часовой пояс для текущего сеанса или запроса.
Неявный часовой пояс применяется к значениям типа DateTime/DateTime64, для которых часовой пояс явно не указан.
Этот параметр имеет приоритет над неявным часовым поясом, глобально настроенным на уровне сервера.
Значение '' (пустая строка) означает, что неявный часовой пояс текущего сеанса или запроса совпадает с [часовым поясом сервера](/docs/ru/reference/settings/server-settings/settings#timezone).

Чтобы получить часовой пояс сеанса и часовой пояс сервера, можно использовать функции `timeZone()` и `serverTimeZone()`.

Возможные значения:

* Любое имя часового пояса из `system.time_zones`, например `Europe/Berlin`, `UTC` или `Zulu`

Примеры:

```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"
```

Назначьте внутреннему DateTime без явно заданного часового пояса часовой пояс сеанса 'America/Denver':

```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>
  Не все функции, разбирающие DateTime/DateTime64, учитывают `session_timezone`. Это может приводить к трудноуловимым ошибкам.
  См. пример и пояснение ниже.
</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 │
└─────────────────────┴──────────────────┘
```

Это происходит из-за различий в конвейерах разбора:

* `toDateTime()` без явно указанного часового пояса, используемая в первом запросе `SELECT`, учитывает настройку `session_timezone` и глобальный часовой пояс.
* Во втором запросе значение DateTime разбирается из строки и наследует тип и часовой пояс существующего столбца `d`. Поэтому ни настройка `session_timezone`, ни глобальный часовой пояс не учитываются.

**См. также**

* [timezone](/docs/ru/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Определяет, что произойдёт, если объём данных превысит одно из ограничений.

Возможные значения:

* `throw`: сгенерировать исключение (по умолчанию).
* `break`: остановить выполнение запроса и вернуть частичный результат, как если бы
  исходные данные закончились.

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

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

Для одиночного JOIN при неоднозначности идентификатора использовать левую таблицу

<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": "Если включено, позволяет использовать одну и ту же пользовательскую функцию несколько раз для нескольких материализованных столбцов в одной таблице."}]}]} />

Избыточные псевдонимы не используются (не подставляются) в пользовательских функциях, что упрощает их использование.

Возможные значения:

* 1 — Псевдонимы пропускаются (заменяются своими выражениями) в UDF.
* 0 — Псевдонимы не пропускаются (не заменяются своими выражениями) в UDF.

**Пример**

Разница между включенным и отключенным состоянием:

Запрос:

```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);
```

Результат:

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

Запрос:

```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);
```

Результат:

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

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

Время паузы после получения запроса в TCPHandler

<div id="snappy_mode">
  ## snappy\_mode
</div>

<SettingsInfoBlock type="SnappyMode" default_value="basic" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "basic"},{"label": "Новая настройка для управления форматом передачи данных, используемым для сжатия snappy при универсальном файловом вводе-выводе и работе с URL. Значение по умолчанию `basic` сохраняет обратную совместимость с чтением блокового формата Hadoop snappy; HTTP `Content-Encoding: snappy` всегда использует формат framing независимо от этой настройки."}]}]} />

Управляет форматом передачи данных, используемым для сжатия snappy при универсальных путях файлового ввода-вывода, таких как `file` и `url`. HTTP `Content-Encoding: snappy` всегда использует формат framing и не учитывает эту настройку.

Обратите внимание: необработанный блоковый формат snappy, создаваемый одним вызовом `snappy::Compress` (например, полезная нагрузка протокола Prometheus remote, обрабатываемая `SnappyBasicReadBuffer`), представляет собой отдельный формат передачи данных, специфичный для протокола, и не управляется этой настройкой.

Возможные значения:

* `basic` — блоковый формат Hadoop snappy. Совместим с файлами, которые Hadoop читает и записывает. Поддерживает и чтение, и запись.
* `framed` — формат framing для Snappy, стандартный стриминг-формат, определённый Google. Поддерживает и чтение, и запись.

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Определяет, что произойдёт, если количество строк, полученных перед сортировкой, превысит одно из ограничений.

Возможные значения:

* `throw`: сгенерировать исключение.
* `break`: остановить выполнение запроса и вернуть частичный результат.

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

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

Управляет тем, будет ли функция [splitBy\*()](/docs/ru/reference/functions/regular-functions/splitting-merging-functions) с аргументом `max_substrings` > 0 включать оставшуюся часть строки в последний элемент результирующего массива.

Возможные значения:

* `0` - Оставшаяся часть строки не будет включена в последний элемент результирующего массива.
* `1` - Оставшаяся часть строки будет включена в последний элемент результирующего массива. Такое поведение соответствует функции [`split()`](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html) в Spark и методу ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) в Python.

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<ExperimentalBadge />

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

При запуске сервера отключает планирование refreshable materialized views, как если бы была выполнена команда SYSTEM STOP VIEWS. Позже их можно вручную запустить с помощью `SYSTEM START VIEWS` или `SYSTEM START VIEW <name>`. Это также относится к вновь созданным представлениям. Не влияет на materialized views, не являющиеся refreshable.

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="290" />

Время в секундах, в течение которого соединение должно оставаться неактивным, прежде чем TCP начнет отправлять 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": "Время ожидания получения блокировки файлового кэша для резервирования места под временные данные"}]}]} />

Время ожидания получения блокировки файлового кэша для резервирования места под временные данные

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

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

Разрешает или запрещает пустые INSERT-запросы; по умолчанию включена (при пустой вставке генерируется ошибка). Применяется только к INSERT-запросам, выполняемым через [`clickhouse-client`](/docs/ru/concepts/features/interfaces/cli) или [gRPC-интерфейс](/docs/ru/concepts/features/interfaces/grpc).

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

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

Проверяет, не слишком ли низка скорость выполнения (не ниже `min_execution_speed`),
по истечении указанного времени в секундах.

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Определяет, что происходит, когда объём данных превышает одно из ограничений.

Возможные значения:

* `throw`: сгенерировать исключение (по умолчанию).
* `break`: остановить выполнение запроса и вернуть частичный результат, как если бы
  исходные данные закончились.

<div id="transform_null_in">
  ## transform\_null\_in
</div>

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

Включает сравнение значений [NULL](/docs/ru/reference/syntax#null) как равных для оператора [IN](/docs/ru/reference/statements/in).

По умолчанию значения `NULL` сравнивать нельзя, поскольку `NULL` означает неопределённое значение. Поэтому сравнение `expr = NULL` всегда должно возвращать `false`. При включении этой настройки выражение `NULL = NULL` для оператора `IN` возвращает `true`.

Возможные значения:

* 0 — Сравнение значений `NULL` в операторе `IN` возвращает `false`.
* 1 — Сравнение значений `NULL` в операторе `IN` возвращает `true`.

**Пример**

Рассмотрим таблицу `null_in`:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

Запрос:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

Результат:

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

Запрос:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

Результат:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**См. также**

* [Обработка NULL в операторах IN](/docs/ru/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": "Обходить теневой каталог при запросе system.remote_data_paths."}]}]} />

Обходить замороженные данные (теневой каталог) наряду с данными самой таблицы при запросе system.remote\_data\_paths

<div id="union_default_mode">
  ## union\_default\_mode
</div>

Задает режим объединения результатов `SELECT`-запросов. Эта настройка используется только при работе с [UNION](/docs/ru/reference/statements/select/union), если явно не указаны `UNION ALL` или `UNION DISTINCT`.

Возможные значения:

* `'DISTINCT'` — ClickHouse выводит строки, полученные в результате объединения запросов, удаляя дублирующиеся строки.
* `'ALL'` — ClickHouse выводит все строки, полученные в результате объединения запросов, включая дублирующиеся строки.
* `''` — ClickHouse генерирует исключение при использовании `UNION`.

См. примеры в разделе [UNION](/docs/ru/reference/statements/select/union).

<div id="unique_key_max_encoded_size">
  ## unique\_key\_max\_encoded\_size
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "256"},{"label": "Новая настройка: максимальный размер (в байтах) двоичного кодирования, сохраняющего порядок, для одной строки `UNIQUE KEY`"}]}]} />

Максимальный размер (в байтах) двоичного кодирования, сохраняющего порядок, для одной строки `UNIQUE KEY`.

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

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

Отправлять неизвестный пакет вместо N-го пакета данных

<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": "Новая настройка для управления поведением при несоответствии типов в реализации Variant по умолчанию"}]}]} />

При применении функции к столбцу [Variant](/docs/ru/reference/data-types/variant) с использованием реализации по умолчанию
эта настройка определяет, что происходит со строками, фактический тип которых несовместим с функцией:

* `true` (по умолчанию) — сгенерировать исключение.
* `false` — вместо этого возвращать `NULL` для таких строк.

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

Ожидать, пока закоммиченные изменения действительно станут видимыми в последнем снимке

<div id="workload">
  ## рабочая нагрузка
</div>

<SettingsInfoBlock type="String" default_value="default" />

Имя рабочей нагрузки, используемой для доступа к ресурсам

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Новая настройка."}]}]} />

Записывать полные пути (включая s3://) в файлы метаданных Iceberg.

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

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

Позволяет задать максимальный логарифм окна для ZSTD (не используется для семейства MergeTree)
