max_execution_speed
timeout_before_checking_execution_speed
vence. Si la velocidad de ejecución es demasiado alta, se reducirá.
max_execution_speed_bytes
timeout_before_checking_execution_speed
vence. Si la velocidad de ejecución es demasiado alta, se reducirá.
max_execution_time
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.
El tiempo de espera se comprueba y la consulta solo puede detenerse en puntos concretos durante el procesamiento de datos.
Actualmente no puede detenerse durante la fusión de estados de agregación ni durante la mayor parte del análisis de la consulta
(el establecimiento de una conexión con una réplica remota es un punto en el que sí puede), y el tiempo de ejecución real
será mayor que el valor de esta configuración.
max_execution_time_leaf
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:
max_execution_time_leaf como ajuste de consulta: