max_temporary_columns
El número máximo de columnas temporales que deben mantenerse simultáneamente en RAM al ejecutar una consulta, incluidas las columnas constantes. Si una consulta genera más columnas temporales en memoria de las especificadas como resultado de un cálculo intermedio, se produce una excepción. El valor0 significa que no hay límite.
max_temporary_data_on_disk_size_for_query
La cantidad máxima de datos, en bytes, consumida por archivos temporales en disco para todas las consultas que se ejecutan de forma concurrente. Valores posibles:- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_data_on_disk_size_for_user
La cantidad máxima de datos consumida por los archivos temporales en disco, en bytes, para todas las consultas del usuario que se ejecutan de forma concurrente. Valores posibles:- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_non_const_columns
Al igual quemax_temporary_columns, es el número máximo de columnas temporales que deben
mantenerse simultáneamente en RAM al ejecutar una consulta, sin contar las
columnas constantes.
Las columnas constantes se generan con bastante frecuencia al ejecutar una consulta, pero requieren
prácticamente cero recursos de cómputo.
max_temporary_table_memory_usage
Número máximo de bytes de memoria que puede ocupar una tabla temporal con el motorMemory.
Se aplica a las tablas creadas con CREATE TEMPORARY TABLE, incluido el motor de tabla temporal predeterminado
(consulte default_temporary_table_engine), y se contabiliza de la misma forma que total_bytes en system.tables.
El límite se comprueba en cada INSERT en la tabla (incluido CREATE TEMPORARY TABLE ... AS SELECT), tanto mientras se
reciben los datos como justo antes de añadirlos: si la tabla fuera a superarlo, el INSERT lanza una excepción con el
código de error TOO_MANY_BYTES y los datos no se añaden. Un INSERT que escribe con varios threads (consulte
max_insert_threads) añade los datos de cada thread por separado, por lo que es posible que los datos de algunos threads ya se hayan añadido cuando
otro lanza la excepción, pero la tabla nunca supera el límite. El valor se toma de la configuración de la consulta INSERT.
El límite también se comprueba tras una mutación (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN, etc.), con el valor de
la configuración de la consulta ALTER: si los datos mutados fueran a superarlo, la mutación lanza una excepción con el
código de error TOO_MANY_BYTES y los datos no se modifican.
Tenga en cuenta que la configuración max_bytes_to_keep del motor Memory funciona de otra manera: desaloja los datos más antiguos en lugar de
rechazar los nuevos. Si ambas están definidas, primero se aplica el desalojo.
Valores posibles:
- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_table_size_bytes_compressed
Tamaño máximo en bytes de los datos en disco (comprimidos) de una tabla temporal con un motor de la familiaMergeTree.
Se aplica a las tablas creadas con CREATE TEMPORARY TABLE y se calcula del mismo modo que total_bytes en system.tables,
es decir, como la suma de los tamaños de las partes de datos activas.
El límite se comprueba en cada INSERT en la tabla (incluido CREATE TEMPORARY TABLE ... AS SELECT) antes de confirmar cada nueva
parte de datos: si la tabla fuera a superarlo, el INSERT lanza una excepción con el código de error TOO_MANY_BYTES
y la parte no se añade. Las partes confirmadas anteriormente por el mismo INSERT permanecen en la tabla, como sucede con cualquier otro
error durante un INSERT de varios bloques. El valor se toma de la configuración de la consulta INSERT.
Las operaciones que añaden partes existentes a la tabla se limitan del mismo modo, tomando el valor de la configuración de
su propia consulta: ATTACH PART, ATTACH PARTITION, ATTACH PARTITION ... FROM, REPLACE PARTITION ... FROM
y CREATE TEMPORARY TABLE ... CLONE AS. Estas operaciones se rechazan por completo, salvo que
no aumenten el tamaño de la tabla. En el caso de ATTACH PARTITION, la comprobación se realiza una única vez para todas sus partes antes de
adjuntarlas, por lo que las escrituras que se ejecuten simultáneamente pueden hacer que la tabla supere ligeramente el límite.
Las partes escritas por las fusiones en segundo plano y las mutaciones (ALTER TABLE ... UPDATE,
MATERIALIZE COLUMN, etc.) no se comprueban, por lo que una mutación que aumente el tamaño de los datos puede hacer que la tabla supere el límite.
Valores posibles:
- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_table_size_bytes_uncompressed
Tamaño máximo, en bytes, de los datos sin comprimir de una tabla temporal con un motor de la familiaMergeTree.
Se aplica a las tablas creadas con CREATE TEMPORARY TABLE y se calcula de la misma forma que total_bytes_uncompressed
en system.tables.
El límite se comprueba de la misma forma que max_temporary_table_size_bytes_compressed.
Valores posibles:
- Entero positivo.
0— sin límite (predeterminado)
max_temporary_tables
Número máximo de tablas temporales que pueden existir simultáneamente en una sesión. Solo se contabilizan las tablas creadas conCREATE TEMPORARY TABLE; no se cuentan las tablas con datos externos enviados junto con una consulta ni las
tablas temporales que se crean internamente para GLOBAL IN / GLOBAL JOIN o para CTE materializadas.
El límite se comprueba al crear una nueva tabla temporal y, si la sesión ya alcanzó ese número de tablas temporales, se lanza una excepción con el código de error TOO_MANY_TABLES. Reemplazar una tabla temporal existente con
CREATE OR REPLACE TEMPORARY TABLE no incrementa el número de tablas y siempre está permitido.
Valores posibles:
- Entero positivo.
0— ilimitado (predeterminado)