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
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
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
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
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;