max_temporary_columns
Максимальное количество временных столбцов, которые могут одновременно находиться в оперативной памяти при выполнении запроса, включая константные столбцы. Если в результате промежуточных вычислений запрос создает в памяти больше временных столбцов, чем указано, то генерируется исключение. Значение0 означает отсутствие ограничений.
max_temporary_data_on_disk_size_for_query
Максимальный объём данных в байтах, который временные файлы на диске могут занимать при одновременном выполнении всех запросов. Возможные значения:- Положительное целое число.
0— без ограничений (по умолчанию)
max_temporary_data_on_disk_size_for_user
Максимальный объём данных во временных файлах на диске в байтах для всех одновременно выполняющихся запросов пользователя. Возможные значения:- Положительное целое число.
0— без ограничений (по умолчанию)
max_temporary_non_const_columns
Как иmax_temporary_columns, это максимальное количество временных столбцов, которые должны
одновременно храниться в оперативной памяти при выполнении запроса, но без учёта константных
столбцов.
Константные столбцы довольно часто формируются при выполнении запроса, но практически
не требуют вычислительных ресурсов.
max_temporary_table_memory_usage
Максимальный объём памяти в байтах, который может занимать одна временная таблица с движкомMemory.
Применяется к таблицам, созданным с помощью CREATE TEMPORARY TABLE, включая движок временных таблиц по умолчанию
(см. default_temporary_table_engine), и рассчитывается так же, как total_bytes в system.tables.
Ограничение проверяется при каждом INSERT в таблицу (включая CREATE TEMPORARY TABLE ... AS SELECT) — во время получения
данных и ещё раз перед их добавлением: если таблица превысит ограничение, INSERT генерирует исключение с кодом ошибки
TOO_MANY_BYTES, и данные не добавляются. INSERT, выполняющий запись в несколько потоков (см.
max_insert_threads), добавляет данные каждого потока отдельно, поэтому к моменту, когда один из потоков сгенерирует исключение,
данные других потоков уже могут быть добавлены, однако таблица никогда не превышает ограничение. Значение берётся из настроек запроса INSERT.
Ограничение также проверяется после мутации (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN и т. д.), при этом используется значение из
настроек запроса ALTER: если изменённые данные превысят ограничение, мутация генерирует исключение с кодом ошибки
TOO_MANY_BYTES, а данные остаются без изменений.
Обратите внимание, что настройка max_bytes_to_keep движка Memory работает иначе: она вытесняет самые старые данные, а не
отклоняет новые. Если заданы обе настройки, сначала выполняется вытеснение.
Возможные значения:
- Положительное целое число.
0— без ограничений (по умолчанию)
max_temporary_table_size_bytes_compressed
Максимальный размер (в байтах) данных на диске в сжатом виде для одной временной таблицы с движком семействаMergeTree.
Применяется к таблицам, созданным с помощью CREATE TEMPORARY TABLE, и вычисляется так же, как total_bytes в system.tables,
то есть как сумма размеров активных частей данных.
Ограничение проверяется при каждом INSERT в таблицу (включая CREATE TEMPORARY TABLE ... AS SELECT) перед коммитом каждой новой
части данных: если таблица превысит ограничение, INSERT генерирует исключение с кодом ошибки TOO_MANY_BYTES,
и часть не добавляется. Части, закоммиченные ранее тем же INSERT, остаются в таблице — как и при любой другой
ошибке во время INSERT из нескольких блоков. Значение берётся из настроек запроса INSERT.
Операции, добавляющие в таблицу существующие части, ограничиваются так же, а значение берётся из настроек
соответствующего запроса: ATTACH PART, ATTACH PARTITION, ATTACH PARTITION ... FROM, REPLACE PARTITION ... FROM
и CREATE TEMPORARY TABLE ... CLONE AS. Такие операции отклоняются целиком, если только они
не уменьшают и не сохраняют размер таблицы. Для ATTACH PARTITION проверка выполняется один раз для всех её частей до их
подключения, поэтому параллельные операции записи могут привести к небольшому превышению ограничения.
Части, записанные фоновыми слияниями и мутациями (ALTER TABLE ... UPDATE,
MATERIALIZE COLUMN и т. д.), не проверяются, поэтому мутация, увеличивающая объём данных, может привести к превышению ограничения.
Возможные значения:
- Положительное целое число.
0— без ограничений (по умолчанию)
max_temporary_table_size_bytes_uncompressed
Максимальный размер несжатых данных (в байтах) одной временной таблицы с движком семействаMergeTree.
Применяется к таблицам, созданным с помощью CREATE TEMPORARY TABLE, и вычисляется так же, как total_bytes_uncompressed
в system.tables.
Ограничение проверяется так же, как и для max_temporary_table_size_bytes_compressed.
Возможные значения:
- Положительное целое число.
0— без ограничений (по умолчанию).
max_temporary_tables
Максимальное количество временных таблиц, которые могут одновременно существовать в одном сеансе. Учитываются только таблицы, созданные с помощьюCREATE TEMPORARY TABLE. Таблицы с внешними данными, переданными вместе с запросом, а также
временные таблицы, которые создаются внутри системы для GLOBAL IN / GLOBAL JOIN или материализованных CTE, не учитываются.
Ограничение проверяется при создании новой временной таблицы. Если в сеансе уже есть указанное количество временных таблиц,
генерируется исключение с кодом ошибки TOO_MANY_TABLES. Замена существующей временной таблицы с помощью
CREATE OR REPLACE TEMPORARY TABLE не увеличивает количество таблиц и разрешена всегда.
Возможные значения:
- Положительное целое число.
0— без ограничений (по умолчанию)