max_bytes_before_external_group_by
GROUP BY en mémoire externe.
(Voir GROUP BY en mémoire externe)
Valeurs possibles :
- Volume maximal de RAM (en octets) pouvant être utilisé par une seule opération GROUP BY.
0—GROUP BYen mémoire externe désactivé.
Si l’utilisation de la mémoire pendant les opérations GROUP BY dépasse ce seuil en octets,
le mode « agrégation externe » est activé (écriture des données sur disque).La valeur recommandée est la moitié de la mémoire système disponible.
max_bytes_before_external_join
join_algorithm vaut hash, parallel_hash, default ou auto, le hash join sera automatiquement converti en grace hash join pour permettre le déversement sur disque sur disque lorsque les données de droite dépassent ce nombre d’octets. Lorsqu’il est défini sur 0 (valeur par défaut), ce seuil absolu en octets est désactivé, mais un déversement sur disque automatique peut toujours se produire via max_bytes_ratio_before_external_join (qui vaut par défaut 0.5) ; définissez les deux sur 0 pour désactiver complètement le déversement sur disque automatique. Cela empêche l’optimisation de lecture read in order via join.
max_bytes_before_external_sort
ORDER BY en mémoire externe. Voir Détails d’implémentation de ORDER BY
Si l’utilisation de la mémoire pendant l’opération ORDER BY dépasse ce seuil en octets, le mode de « tri externe » (écriture des données sur disque) est activé.
Valeurs possibles :
- Volume maximal de RAM (en octets) pouvant être utilisé par une seule opération ORDER BY. La valeur recommandée est la moitié de la mémoire système disponible
0—ORDER BYen mémoire externe désactivé.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm — consultez ce paramètre pour connaître le comportement propre à chaque algorithme (spill, repartitionnement, basculement ou throw/break selon join_overflow_mode).
Valeurs possibles :
- Entier positif.
- 0 — Le contrôle de la mémoire est désactivé.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY. Une fois ce seuil atteint,
la mémoire externe est utilisée pour l’agrégation.
Par exemple, si cette valeur est définie sur 0.6, GROUP BY pourra utiliser 60 % de la mémoire disponible
(pour server/user/merges) au début de l’exécution ; ensuite, il
commencera à utiliser l’agrégation externe.
max_bytes_ratio_before_external_join
JOIN. Une fois ce seuil atteint, le hash join est converti en grace hash join afin de déverser les données du côté droit sur disque.
Par exemple, si cette valeur est définie sur 0.6, JOIN autorise l’utilisation de 60% de la mémoire disponible (pour le serveur/l’utilisateur/les fusions) pour la table de hachage du côté droit au début de l’exécution ; au-delà, le déversement sur disque commence.
Si max_bytes_before_external_join et max_bytes_ratio_before_external_join sont tous deux définis, c’est le plus petit seuil obtenu qui est utilisé. Si le ratio vaut 0, seule la valeur absolue s’applique.
N’a d’effet que lorsque join_algorithm vaut hash, parallel_hash, default ou auto et qu’un chemin de données temporaire est configuré.
max_bytes_ratio_before_external_sort
ORDER BY. Une fois cette limite atteinte, le tri externe est utilisé.
Par exemple, s’il est défini sur 0.6, ORDER BY pourra utiliser 60% de la mémoire disponible (pour server/user/merges) au début de l’exécution, puis il commencera à utiliser le tri externe.
Notez que max_bytes_before_external_sort reste pris en compte : le déversement sur disque n’a lieu que si le bloc de tri est plus grand que max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150 échouera, car le total
sera de 200 octets. Une requête avec max_bytes_to_read_leaf=150 réussira puisque les
nœuds feuille liront au maximum 100 octets.
La restriction est vérifiée pour chaque fragment de données traité.
Ce paramètre est instable avec
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode, qui est défini par défaut sur throw.