Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.
max_execution_speed
Nombre maximal de lignes traitées par seconde. Ce paramètre est vérifié sur chaque bloc de données lorsque
timeout_before_checking_execution_speed
expire. Si la vitesse d'exécution est trop élevée, elle sera réduite.
max_execution_speed_bytes
Le nombre maximal d’octets traités par seconde. Cette limite est vérifiée pour chaque bloc de données lorsque
timeout_before_checking_execution_speed
expire. Si la vitesse d’exécution est trop élevée, elle sera réduite.
max_execution_time
Le temps d’exécution maximal d’une requête, en secondes.
Le paramètre max_execution_time peut être un peu délicat à comprendre.
Il fonctionne sur la base d’une interpolation relative à la vitesse d’exécution actuelle de la requête
(ce comportement est contrôlé par timeout_before_checking_execution_speed).
ClickHouse interrompra une requête si le temps d’exécution estimé dépasse la valeur
spécifiée par max_execution_time. Par défaut, timeout_before_checking_execution_speed
est défini sur 10 secondes. Cela signifie qu’après 10 secondes d’exécution de la requête, ClickHouse
commencera à estimer le temps d’exécution total. Si, par exemple, max_execution_time
est défini sur 3600 secondes (1 heure), ClickHouse mettra fin à la requête si la durée estimée
dépasse cette limite de 3600 secondes. Si vous définissez timeout_before_checking_execution_speed
sur 0, ClickHouse utilisera le temps écoulé comme base pour max_execution_time.
Si le temps d’exécution de la requête dépasse le nombre de secondes spécifié, le comportement sera
déterminé par 'timeout_overflow_mode', qui est défini par défaut sur throw.
max_execution_time_leaf
Sémantiquement similaire à max_execution_time, mais
appliqué uniquement aux nœuds feuilles pour les requêtes distribuées ou distantes.
Par exemple, si l’on veut limiter le temps d’exécution sur un nœud feuille à 10s tout en
n’ayant aucune limite sur le nœud initial, au lieu d’avoir max_execution_time dans les
paramètres de la sous-requête imbriquée :
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));Nous pouvons utiliser max_execution_time_leaf comme paramètre de requête :
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;