Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ajustes de sesión max_execution_*

Estas opciones de configuración están disponibles en system.settings y se generan automáticamente a partir del código fuente.

max_execution_speed

Tipo
UInt64
Predeterminado
0

El número máximo de filas procesadas por segundo. Se comprueba en cada bloque de datos cuando timeout_before_checking_execution_speed vence. Si la velocidad de ejecución es demasiado alta, se reducirá.

max_execution_speed_bytes

Tipo
UInt64
Predeterminado
0

El número máximo de bytes procesados por segundo. Se comprueba en cada bloque de datos cuando timeout_before_checking_execution_speed vence. Si la velocidad de ejecución es demasiado alta, se reducirá.

max_execution_time

Tipo
Segundos
Predeterminado
0

El tiempo máximo de ejecución de la consulta, en segundos.

El parámetro max_execution_time puede ser algo difícil de entender. Funciona a partir de una interpolación relativa a la velocidad actual de ejecución de la consulta (este comportamiento se controla mediante timeout_before_checking_execution_speed).

ClickHouse interrumpirá una consulta si el tiempo de ejecución estimado supera el valor especificado en max_execution_time. De forma predeterminada, timeout_before_checking_execution_speed está configurado en 10 segundos. Esto significa que, tras 10 segundos de ejecución de la consulta, ClickHouse comenzará a estimar el tiempo total de ejecución. Si, por ejemplo, max_execution_time está configurado en 3600 segundos (1 hora), ClickHouse finalizará la consulta si el tiempo estimado supera este límite de 3600 segundos. Si configura timeout_before_checking_execution_speed en 0, ClickHouse utilizará el tiempo transcurrido como base para max_execution_time.

Si el tiempo de ejecución de la consulta supera el número de segundos especificado, el comportamiento vendrá determinado por timeout_overflow_mode, que de forma predeterminada está configurado en throw.

max_execution_time_leaf

Tipo
Segundos
Predeterminado
0

Es semánticamente similar a max_execution_time, pero solo se aplica a los nodos hoja en consultas distribuidas o remotas.

Por ejemplo, si queremos limitar el tiempo de ejecución en un nodo hoja a 10s, pero no tener ningún límite en el nodo inicial, en lugar de usar max_execution_time en los ajustes de la subconsulta anidada:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));

Podemos usar max_execution_time_leaf como ajuste de consulta:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;
Navigation