max_bytes_before_external_group_by
GROUP BY с использованием внешней памяти.
(См. GROUP BY во внешней памяти)
Возможные значения:
- Максимальный объем оперативной памяти (в байтах), который может использовать одна операция GROUP BY.
0—GROUP BYс использованием внешней памяти отключен.
Если использование памяти во время операций GROUP BY превышает этот порог в байтах,
активируется режим «внешней агрегации» (сброс данных на диск).Рекомендуемое значение — половина доступной системной памяти.
max_bytes_before_external_join
join_algorithm имеет значение hash, parallel_hash, default или auto, hash JOIN будет автоматически преобразован в grace hash JOIN, что позволит сбрасывать данные на диск, когда объём данных с правой стороны превысит этот порог в байтах. При значении 0 (по умолчанию) этот абсолютный порог в байтах отключён, однако автоматический сброс на диск всё равно может происходить через max_bytes_ratio_before_external_join (по умолчанию — 0.5); установите оба значения в 0, чтобы полностью отключить автоматический сброс на диск. Это предотвращает оптимизацию чтения по порядку через JOIN.
max_bytes_before_external_sort
ORDER BY во внешней памяти. См. Подробности реализации ORDER BY
Если использование памяти во время операции ORDER BY превышает этот порог в байтах, активируется режим «внешней сортировки» (сброс данных на диск).
Возможные значения:
- Максимальный объём оперативной памяти (в байтах), который может использовать одна операция ORDER BY. Рекомендуемое значение — половина доступной системной памяти
0—ORDER BYво внешней памяти отключён.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm — описание поведения для каждого алгоритма см. в этом параметре (spill, повторное разбиение на партиции, переключение или throw/break в соответствии с join_overflow_mode).
Возможные значения:
- Положительное целое число.
- 0 — контроль памяти отключен.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY. После
достижения этого значения для агрегации начинает использоваться внешняя память.
Например, если установлено значение 0.6, GROUP BY сможет использовать 60% доступной памяти
(server/user/merges) на начальном этапе выполнения, после чего
начнёт использовать внешнюю агрегацию.
max_bytes_ratio_before_external_join
JOIN. При достижении этого значения hash join будет преобразован в grace hash join, чтобы сбрасывать данные из правой части на диск.
Например, если задано значение 0.6, JOIN позволит использовать 60% доступной памяти (для server/user/merges) для хеш-таблицы правой части в начале выполнения; после этого начнется сброс на диск.
Если заданы и max_bytes_before_external_join, и max_bytes_ratio_before_external_join, используется меньший из получившихся порогов. Если значение доли равно 0, применяется только абсолютная настройка.
Действует только если join_algorithm имеет значение hash, parallel_hash, default или auto и настроен путь для временных данных.
max_bytes_ratio_before_external_sort
ORDER BY. После достижения этого порога используется внешняя сортировка.
Например, если установить значение 0.6, ORDER BY сможет использовать 60% доступной памяти (для server/user/merges) в начале выполнения, после чего начнёт использовать внешнюю сортировку.
Обратите внимание, что ограничение max_bytes_before_external_sort по-прежнему действует: выгрузка на диск выполняется только в том случае, если блок сортировки превышает max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150, завершится ошибкой, поскольку
в сумме получится 200 байт. Запрос с max_bytes_to_read_leaf=150 выполнится успешно, так как
листовые узлы прочитают максимум 100 байт.
Ограничение проверяется для каждого обработанного фрагмента данных.
Этот параметр нестабилен при
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode, который по умолчанию имеет значение throw.