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

query_plan_aggregation_in_order

Включает или отключает оптимизацию агрегации в порядке выполнения на уровне плана запроса. Действует только в том случае, если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_convert_any_join_to_semi_or_anti_join

Разрешает преобразовывать ANY JOIN в SEMI или ANTI JOIN, если фильтр после JOIN для совпавших или несовпавших строк всегда принимает значение false

query_plan_convert_join_to_in

Разрешает преобразовывать JOIN в подзапрос с IN, если выходные столбцы относятся только к левой таблице. Может приводить к неверным результатам с JOIN, отличными от ANY JOIN (например, с ALL JOIN, который используется по умолчанию).

query_plan_convert_outer_join_to_inner_join

Разрешает преобразовывать OUTER JOIN в INNER JOIN, если фильтр после JOIN всегда исключает значения по умолчанию

query_plan_direct_read_from_text_index

Позволяет выполнять фильтрацию при полнотекстовом поиске, используя в плане запроса только инвертированный текстовый индекс.

query_plan_display_internal_aliases

Показывать в EXPLAIN PLAN внутренние псевдонимы (например, __table1) вместо псевдонимов, указанных в исходном запросе.

query_plan_enable_multithreading_after_window_functions

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

query_plan_enable_optimizations

Включает или отключает оптимизацию запросов на уровне плана запроса.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 — отключить все оптимизации на уровне плана запроса
  • 1 — включить оптимизации на уровне плана запроса (при этом отдельные оптимизации по-прежнему можно отключить их собственными настройками)

query_plan_execute_functions_after_sorting

Включает или отключает оптимизацию на уровне плана запроса, которая перемещает выражения после этапов сортировки. Действует только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_filter_push_down

Включает или отключает оптимизацию на уровне плана запроса, которая опускает фильтры ниже в плане выполнения. Применяется только в том случае, если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_join_shard_by_pk_ranges

Применять сегментирование для JOIN, если ключи JOIN в обеих таблицах содержат префикс PRIMARY KEY. Поддерживается для алгоритмов hash, parallel_hash и full_sorting_merge. Обычно не ускоряет запросы, но может снизить потребление памяти.

query_plan_join_swap_table

Определяет, какая сторона JOIN должна использоваться как build-таблица (также называемая inner — она помещается в hash-таблицу при hash JOIN) в плане запроса. Эта настройка поддерживается только для strictness ALL с условием JOIN ON. Возможные значения:
  • ‘auto’: позволить planner’у определить, какую таблицу использовать как build-таблицу.
  • ‘false’: никогда не менять таблицы местами (build-таблицей является правая таблица).
  • ‘true’: всегда менять таблицы местами (build-таблицей является левая таблица).

query_plan_lift_up_array_join

Включает или отключает оптимизацию на уровне плана запроса, которая перемещает ARRAY JOIN выше в плане выполнения. Работает только в том случае, если для настройки query_plan_enable_optimizations установлено значение 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_lift_up_union

Включает или отключает оптимизацию на уровне плана запроса, которая переносит более крупные поддеревья плана запроса в union, чтобы открыть возможности для дальнейших оптимизаций. Действует только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_max_limit_for_join_lazy_indexing

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

query_plan_max_limit_for_lazy_materialization

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

query_plan_max_limit_for_top_k_optimization

Определяет максимальное значение LIMIT, при котором выполняется оценка плана запроса для оптимизации TopK с использованием индекса пропуска данных minmax и динамической фильтрации по порогу. Если значение равно 0, ограничение отсутствует.

query_plan_max_optimizations_to_apply

Ограничивает общее число оптимизаций, применяемых к плану запроса; см. настройку query_plan_enable_optimizations. Полезно, чтобы избежать длительной оптимизации сложных запросов. В запросе EXPLAIN PLAN после достижения этого предела применение оптимизаций прекращается, и план возвращается как есть. При обычном выполнении запроса, если фактическое число оптимизаций превышает значение этой настройки, генерируется исключение.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться обратно несовместимым образом или быть удалена.

query_plan_max_set_size_for_projection_match

Максимальное количество строк во множестве условия IN, для которого механизм сопоставления проекций вычисляет и сравнивает хеши содержимого при определении равенства двух множеств. Множества, размер которых превышает это значение, считаются несовпадающими, и проекция пропускается. Ноль полностью отключает сравнение хешей содержимого: сопоставление проекций никогда не бывает успешным для узлов, содержащих множества условия IN. Используется механизмом сопоставления aggregate projection (и любым будущим механизмом сопоставления проекций, которому потребуется сравнивать множества условия IN). Вычисление хеша содержимого имеет сложность O(N log N) по числу элементов множества; эта настройка ограничивает затраты на этапе планирования, когда в запросе или проекции присутствует много условий IN.

query_plan_max_step_description_length

Максимальная длина описания шага в EXPLAIN PLAN.

query_plan_merge_expression_into_join

Разрешает объединять выражения в шаг JOIN при оптимизации порядка JOIN.

query_plan_merge_expressions

Включает или отключает оптимизацию на уровне плана запроса, которая объединяет последовательные фильтры. Действует только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_merge_filter_into_join_condition

Позволяет объединять фильтр с условием JOIN и преобразовывать CROSS JOIN в INNER.

query_plan_merge_filters

Позволяет объединять фильтры в плане запроса.

query_plan_min_columns_for_join_lazy_indexing

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

query_plan_optimize_join_order_algorithm

Определяет, какие алгоритмы порядка JOIN следует применять при оптимизации плана запроса. Доступны следующие алгоритмы:
  • ‘greedy’ - базовый жадный алгоритм — работает быстро, но не всегда даёт наилучший порядок JOIN
  • ‘dpsize’ - реализует алгоритм DPsize, который в настоящее время поддерживает только INNER JOIN, — перебирает все возможные порядки JOIN и находит оптимальный, но может работать медленно для запросов с большим количеством таблиц и предикатов JOIN.
  • ‘dpsub’ - реализует алгоритм DPsub, который поддерживает как INNER JOIN, так и другие типы JOIN, — перебирает все возможные порядки JOIN и находит оптимальный, но может работать медленно для запросов с большим количеством таблиц и предикатов JOIN.
  • ‘dphyp’ - реализует алгоритм DPhyp (Dynamic Programming via Hypergraph Partitioning), который в настоящее время поддерживает только INNER JOIN, — исследует то же пространство поиска, что и dpsize, но перебирает только пары связанных подграфов, создавая меньше промежуточных JOIN в разреженных графах JOIN, ценой отказа от рассмотрения декартовых произведений Можно указать несколько алгоритмов в виде списка, разделённого запятыми, например dphyp,greedy. Они применяются по порядку; если алгоритм не может обработать запрос (например, из-за OUTER JOIN или несвязанных компонентов), в качестве резервного варианта используется следующий.

query_plan_optimize_join_order_limit

Оптимизирует порядок JOIN в рамках одного подзапроса. Пока поддерживается только в очень ограниченном числе случаев. Значение задаёт максимальное количество таблиц, для которых выполняется оптимизация.

query_plan_optimize_join_order_max_searched_plans

Максимальное число частичных планов, которые оптимизатор порядка JOIN может перебрать, прежде чем прекратить поиск и перейти к следующему алгоритму в query_plan_optimize_join_order_algorithm. Это детерминированно ограничивает время оптимизации (независимо от реального времени) на плотных графах JOIN, таких как клики или звёзды, где пространство поиска растёт экспоненциально. Установите 0, чтобы отключить ограничение. Не влияет на значение по умолчанию query_plan_optimize_join_order_limit, при котором поиск всегда остаётся значительно ниже этого предела.

query_plan_optimize_join_order_randomize

Если значение не равно нулю, оптимизатор порядка JOIN использует случайно сгенерированные кардинальности и NDV вместо реальной статистики. Если задано значение 1, генерируется начальное значение генератора случайных чисел; если задано значение > 1, это значение используется напрямую как начальное значение генератора случайных чисел. Это предназначено для тестирования и помогает выявлять ошибки, вызванные различным порядком JOIN.

query_plan_optimize_lazy_final

Оптимизирует чтение с FINAL в ReplacingMergeTree путем построения множества первичных ключей и его использования при анализе индекса.

query_plan_optimize_lazy_materialization

Использовать план запроса для оптимизации отложенной материализации.

query_plan_optimize_prewhere

Разрешает проталкивать фильтр в выражение PREWHERE для поддерживаемых хранилищ

query_plan_push_down_limit

Включает или отключает оптимизацию на уровне плана запроса, которая перемещает LIMIT ниже в плане выполнения. Настройка действует только в том случае, если значение query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_push_limit_by_into_sort

Включает или отключает оптимизацию на уровне плана запроса для запросов ORDER BY ... LIMIT BY. Когда столбцы LIMIT BY являются префиксом предложения ORDER BY, LIMIT BY применяется в каждом параллельном отсортированном потоке до слияния потоков в один, что уменьшает количество строк, обрабатываемых на этапе финального слияния и на последующих стадиях конвейера. Ускоряет запросы, в которых LIMIT BY отбрасывает значительную часть строк. Действует только если значение настройки query_plan_enable_optimizations равно 1. Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_read_in_order

Включает или отключает оптимизацию чтения in-order на уровне плана запроса. Действует, только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_read_in_order_through_join

Сохранять упорядоченное чтение из левой таблицы при выполнении операций JOIN, чтобы его можно было использовать на последующих этапах.

query_plan_remove_redundant_distinct

Включает или отключает оптимизацию на уровне плана запроса, которая удаляет избыточные шаги DISTINCT. Действует только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_remove_redundant_sorting

Включает или отключает оптимизацию на уровне плана запроса, удаляющую избыточные шаги сортировки, например во вложенных запросах. Действует только в том случае, если для настройки query_plan_enable_optimizations установлено значение 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_remove_unused_columns

Включает или отключает оптимизацию на уровне плана запроса, которая пытается удалять неиспользуемые столбцы (как входные, так и выходные) из шагов плана запроса. Действует только если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_reuse_storage_ordering_for_window_functions

Псевдонимы: optimize_read_in_window_order Включает или отключает оптимизацию на уровне плана запроса, которая использует порядок сортировки в хранилище при сортировке для оконных функций. Действует только если значение параметра query_plan_enable_optimizations равно 1.
Это параметр экспертного уровня, который разработчикам следует использовать только для отладки. В будущем параметр может измениться обратно несовместимым образом или быть удалён.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено

query_plan_split_filter

Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
Включает или отключает оптимизацию на уровне плана запроса, которая разбивает фильтры на выражения. Действует только в том случае, если значение настройки query_plan_enable_optimizations равно 1. Возможные значения:
  • 0 - Отключить
  • 1 - Включить

query_plan_text_index_add_hint

Разрешает добавлять подсказку (дополнительный предикат) для фильтрации, построенной на основе инвертированного текстового индекса, в плане запроса.

query_plan_top_k_through_join

Включает или отключает оптимизацию на уровне плана запроса, которая продвигает ORDER BY ... LIMIT n через JOIN, если ключ сортировки ссылается только на столбцы сохраняемой стороны JOIN (LEFT/RIGHT). Ограничивает, сколько строк должен вернуть вход сохраняемой стороны до выполнения JOIN. Действует только если для настройки query_plan_enable_optimizations установлено значение 1. Возможные значения:
  • 0 - Отключено
  • 1 - Включено
Включает или отключает оптимизацию на уровне плана запроса, которая пытается использовать индекс векторного сходства. Действует только в том случае, если значение настройки query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться обратно несовместимым образом или быть удалена.
Возможные значения:
  • 0 - Отключено
  • 1 - Включено
Последнее изменение 24 июля 2026 г.