enable_adaptive_aggregator
GROUP BY adaptatif : chaque thread agrège dans sa table de hachage locale jusqu’à ce qu’elle atteigne adaptive_aggregator_freeze_threshold clés, puis celle-ci est figée. Les lignes associées aux clés déjà rencontrées (fréquentes) continuent alors de la mettre à jour sur place, tandis que les nouvelles clés (rares) sont routées selon leur hash vers des files d’attente par bucket et agrégées exactement une fois lors de la fusion parallèle des buckets. Les clés fréquentes restent dans de petites tables tenant en cache, tandis que les clés rares ne sont stockées et traitées qu’une seule fois, au lieu d’une fois par thread.
Les paramètres d’agrégation externe (max_bytes_before_external_group_by, max_bytes_ratio_before_external_group_by) sont respectés : au-delà du seuil, les files d’attente sont vidées de manière anticipée dans la table partagée et, si cela ne suffit pas à repasser sous ce seuil, la table partagée est déversée sur disque via l’agrégation externe ordinaire.
enable_adaptive_memory_spill_scheduler
enable_add_distinct_to_in_subqueries
DISTINCT dans les sous-requêtes IN. Ce paramètre implique un compromis : son activation peut réduire considérablement la taille des tables temporaires transférées pour les sous-requêtes IN distribuées et accélérer nettement le transfert de données entre les shards, en garantissant que seules des valeurs uniques sont envoyées.
Cependant, l’activation de ce paramètre ajoute des opérations de fusion supplémentaires sur chaque nœud, car la déduplication (DISTINCT) doit être effectuée. Utilisez ce paramètre lorsque le transfert réseau constitue un goulot d’étranglement et que le coût supplémentaire de fusion est acceptable.
enable_automatic_decision_for_merging_across_partitions_for_final
enable_cascades_optimizer
make_distributed_plan = 1 : ce paramètre n’a à lui seul aucun effet sur la planification des requêtes sur un seul nœud.
enable_early_constant_folding
enable_extended_results_for_datetime_functions
Date32 avec une plage étendue (par rapport au type Date)
ou de type DateTime64 avec une plage étendue (par rapport au type DateTime).
Valeurs possibles :
0— Les fonctions renvoientDateouDateTimepour tous les types d’arguments.1— Les fonctions renvoientDate32ouDateTime64pour les argumentsDate32ouDateTime64, etDateouDateTimedans les autres cas.
enable_full_text_index
allow_experimental_full_text_index
Si cette option est définie sur true, l’utilisation de l’index de texte est autorisée.
enable_global_with_statement
enable_hdfs_pread
pread pour les fichiers HDFS. Par défaut, hdfsPread est utilisé. S’il est désactivé, hdfsRead et hdfsSeek sont utilisés pour lire les fichiers HDFS.
enable_http_compression
- 0 — Désactivé.
- 1 — Activé.
enable_identifier_resolve_cache
enable_job_stack_trace
enable_json_ast_dialect
clickhouse_json du paramètre dialect.
Lorsque dialect est défini sur clickhouse_json, les requêtes sont interprétées comme des AST JSON
(la sortie de parseQueryToJSON) plutôt que comme du texte SQL. La requête SET est toujours
analysée comme du SQL standard afin de pouvoir revenir au dialecte précédent.
Exemple :
enable_lazy_columns_replication
JOIN, ARRAY JOIN, ainsi que dans les captures lambda de fonctions d’ordre supérieur (p. ex. arrayMap). Cela permet d’éviter de copier inutilement plusieurs fois les mêmes lignes en mémoire.
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_order_by_all
ORDER BY ALL, voir ORDER BY.
Valeurs possibles :
- 0 — Désactive
ORDER BY ALL. - 1 — Active
ORDER BY ALL.
enable_packed_string_keys_in_aggregation
PackedStringRef) pour les GROUP BY comportant une seule clé String non nullable. Les clés d’au plus 11 octets sont stockées directement dans la référence compacte ; les clés plus longues sont référencées dans une arène.
Cette méthode est plus rapide pour la plupart des workloads, mais peut être plus lente que la méthode legacy pour les GROUP BY avec très peu de clés distinctes de plus de 11 octets (en particulier de 12 à 24 octets), car la table de hachage legacy conserve les clés directement dans la cellule, tandis que la table compacte déréférence le pointeur vers l’arène à chaque recherche.
Lorsqu’elle est désactivée, la méthode legacy basée sur StringHashTable (celle utilisée par défaut avant la version 26.8) est employée.
Tous les serveurs participant à une requête distribuée doivent utiliser la même valeur : avec distributed_aggregation_memory_efficient, les numéros de buckets à deux niveaux dépendent du hash de la clé, qui diffère selon la méthode. Des serveurs utilisant des valeurs différentes pour ce paramètre peuvent donc répartir une même clé dans différents buckets et produire un résultat fusionné incorrect. Pour garantir cette cohérence, l’initiateur transmet toujours sa valeur effective avec les requêtes secondaires (même lorsqu’elle provient uniquement des valeurs par défaut du serveur ou du profil), en remplaçant les valeurs par défaut des serveurs distants.
enable_parsing_to_custom_serialization
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficient) de produire des buckets dans le désordre.
Cela peut améliorer les performances lorsque la taille des buckets d’agrégation est inégale, en permettant à une réplique d’envoyer à l’initiateur des buckets dont les ID sont plus élevés alors qu’elle traite encore des buckets volumineux avec des ID plus faibles.
L’inconvénient est une consommation de mémoire potentiellement plus élevée.
enable_reads_from_query_cache
SELECT sont lus depuis le cache de requêtes.
Valeurs possibles :
- 0 - Désactivé
- 1 - Activé
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY partitionnée, qui répartit les lignes entre les threads en hachant la clé de regroupement, de sorte que chaque thread agrège un sous-ensemble distinct de clés sans phase de fusion.
Cette approche est efficace pour les clés à forte cardinalité lorsque les données sont réparties uniformément, mais peut être moins performante en cas de distribution très déséquilibrée des clés ou de requêtes comportant très peu de clés distinctes.
Valeurs possibles :
- 0 — L’optimisation d’agrégation partitionnée est désactivée.
- 1 — L’optimisation d’agrégation partitionnée est activée.
- 0 - Désactivé
- 1 - Activé
enable_sharing_sets_for_mutations
enable_streaming_queries
SELECT ... FROM t STREAM [CURSOR '{...}'].
Lorsqu’il est désactivé, toute expression de table utilisant le modificateur STREAM est rejetée
lors de la construction du plan. Il s’agit du paramètre de contrôle global de la
fonctionnalité de requêtes en continu ; des capacités supplémentaires peuvent être régies par leurs propres paramètres.
enable_time_time64_type
allow_experimental_time_time64_type
Permet de créer les types de données Time et Time64.
enable_unaligned_array_join
enable_url_encoding
enable_vertical_final
enable_writes_to_query_cache
SELECT sont stockés dans le cache de requêtes.
Valeurs possibles :
- 0 - Désactivé
- 1 - Activé