Skip to main content
Эти настройки доступны в system.settings и автоматически генерируются на основе исходного кода.

max_streams_for_files_processing_in_cluster_functions

Если значение не равно нулю, ограничивает количество потоков, читающих данные из файлов в *табличных функциях cluster.

max_streams_for_merge_tree_reading

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

max_streams_for_union_step

Ограничивает число одновременно активных потоков данных на шаге UNION (применяется к UNION ALL, к UNION DISTINCT, поскольку он реализуется через шаг UNION ALL, за которым следует шаг DISTINCT, а также к чтению таблицы Merge с параллельными репликами на основе плана, которое разворачивается в объединение чтений из её нижележащих таблиц). Если запрос UNION содержит много подзапросов, все они одновременно открывают свои буферы чтения, из-за чего использование памяти становится пропорциональным числу подзапросов. Эта настройка добавляет процессоры Concat, чтобы сузить конвейер и обеспечить одновременную активность не более указанного числа потоков, что значительно снижает пиковое потребление памяти. Фактическое ограничение — это минимум из этого значения и max_threads * max_streams_for_union_step_to_max_threads_ratio (если любое из них равно 0, оно игнорируется). Если оба значения равны 0, сужение не применяется. Ограничение также не применяется, если план запроса требует, чтобы каждый выходной поток UNION оставался отдельно отсортированным (например, когда для UNION применяется оптимизация чтения по порядку); в таком случае корректность порядка имеет приоритет, и сужение пропускается.

max_streams_for_union_step_to_max_threads_ratio

Этот коэффициент, умноженный на max_threads, задаёт ограничение на число одновременно активных потоков на шаге UNION (применяется как к UNION ALL, так и к UNION DISTINCT). Фактическое ограничение — это минимум из этого вычисленного значения и max_streams_for_union_step (если любое из них равно 0, оно игнорируется). Например, при max_threads = 8 и значении этого коэффициента 1 одновременно будут активны не более 8 потоков. Установите 0, чтобы отключить это ограничение, зависящее от коэффициента. Как и в случае с max_streams_for_union_step, ограничение не применяется, если план запроса требует, чтобы каждый выходной поток UNION оставался отсортированным отдельно.

max_streams_multiplier_for_merge_tables

Запрашивает больше потоков при чтении из таблицы Merge. Потоки будут распределяться между таблицами, которые использует таблица Merge. Это позволяет более равномерно распределять нагрузку между потоками и особенно полезно, когда эти таблицы различаются по размеру. Количество одновременно читающих потоков также ограничивается этим множителем — за исключением чтения из таблицы Merge с параллельными репликами на основе плана (parallel_replicas_allow_merge_tables), которое разворачивается в объединение чтений из её нижележащих таблиц и поэтому ограничивается настройкой max_streams_for_union_step, как и любой другой union.

max_streams_to_max_threads_ratio

Позволяет использовать больше источников, чем потоков, чтобы нагрузка распределялась между потоками равномернее. Это считается временным решением: в будущем число источников можно будет сделать равным числу потоков, при этом каждый источник сможет динамически выбирать доступную для него работу.
Последнее изменение 26 сентября 2026 г.