max_execution_speed
timeout_before_checking_execution_speed
expira. Se a velocidade de execução estiver alta, ela será reduzida.
max_execution_speed_bytes
timeout_before_checking_execution_speed
expira. Se a velocidade de execução estiver alta, ela será reduzida.
max_execution_time
max_execution_time pode ser um pouco difícil de entender.
Ele funciona com base em uma interpolação relativa à velocidade atual de execução da consulta
(esse comportamento é controlado por timeout_before_checking_execution_speed).
O ClickHouse interromperá uma consulta se o tempo total de execução estimado exceder o
max_execution_time especificado. Por padrão, timeout_before_checking_execution_speed
é definido como 10 segundos. Isso significa que, após 10 segundos de execução da consulta, o ClickHouse
começará a estimar o tempo total de execução. Se, por exemplo, max_execution_time
for definido como 3600 segundos (1 hora), o ClickHouse encerrará a consulta se o tempo estimado
ultrapassar esse limite de 3600 segundos. Se você definir timeout_before_checking_execution_speed
como 0, o ClickHouse usará o tempo decorrido como base para max_execution_time.
Se o tempo de execução da consulta exceder o número especificado de segundos, o comportamento será
determinado por ‘timeout_overflow_mode’, que, por padrão, é definido como throw.
O timeout é verificado, e a consulta só pode ser interrompida em pontos específicos durante o processamento de dados.
Atualmente, ela não pode ser interrompida durante a mesclagem de estados de agregação nem durante a análise da consulta,
e o tempo real de execução será maior que o valor dessa configuração.
max_execution_time_leaf
max_execution_time, mas aplicado apenas
a nós folha em consultas distribuídas ou remotas.
Por exemplo, se quisermos limitar o tempo de execução em um nó folha a 10s, mas
não houver limite no nó inicial, em vez de definir max_execution_time nas
configurações da subconsulta aninhada:
max_execution_time_leaf nas configurações da consulta: