Skip to main content
Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du source.

enable_adaptive_aggregator

Active l’algorithme 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

Déclenche le processeur pour déverser de manière adaptative les données vers un stockage externe. Seul grace join est actuellement pris en charge.

enable_add_distinct_to_in_subqueries

Active 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

Si ce paramètre est activé, ClickHouse activera automatiquement cette optimisation lorsque l’expression de la clé de partition est déterministe et que toutes les colonnes utilisées dans cette expression sont incluses dans la clé primaire. Cette déduction automatique garantit que les lignes ayant les mêmes valeurs de clé primaire appartiendront toujours à la même partition, ce qui permet d’éviter en toute sécurité les fusions entre partitions.

enable_cascades_optimizer

Active l’optimiseur Cascades basé sur les coûts pour les plans de requêtes distribuées. Ne prend effet qu’avec 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

Active une optimisation de requête qui analyse les résultats des fonctions et des sous-requêtes, puis réécrit la requête si elle contient des constantes

enable_extended_results_for_datetime_functions

Active ou désactive le renvoi de résultats de type 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 renvoient Date ou DateTime pour tous les types d’arguments.
  • 1 — Les fonctions renvoient Date32 ou DateTime64 pour les arguments Date32 ou DateTime64, et Date ou DateTime dans les autres cas.
Le tableau ci-dessous montre le comportement de ce paramètre pour différentes fonctions de date et heure.

enable_full_text_index

Alias : 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

Propage les instructions WITH aux requêtes UNION et à toutes les sous-requêtes

enable_hdfs_pread

Active ou désactive 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

Active ou désactive la compression des données dans la réponse à une requête HTTP. Pour plus d’informations, consultez la description de l’interface HTTP. Valeurs possibles :
  • 0 — Désactivé.
  • 1 — Activé.

enable_identifier_resolve_cache

Active le cache de résolution des identifiants dans l’analyseur de requêtes. Le cache partage les nœuds d’alias résolus afin d’éviter une explosion de l’AST lorsque le même alias est utilisé plusieurs fois. Définissez-la sur false pour désactiver la mise en cache si vous suspectez des résultats incorrects.

enable_job_stack_trace

Affiche la trace de pile du créateur du job lorsque celui-ci entraîne une exception. Désactivé par défaut afin d’éviter toute surcharge de performances.

enable_json_ast_dialect

Active la valeur 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

Active la réplication différée des colonnes dans 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

Active les expressions de table communes matérialisées ; ce paramètre est prioritaire sur enable_global_with_statement

enable_memory_bound_merging_of_aggregation_results

Active la stratégie de fusion des résultats d’agrégation limitée par la mémoire.

enable_multiple_prewhere_read_steps

Déplace davantage de conditions de WHERE vers PREWHERE, et effectue les lectures sur disque ainsi que le filtrage en plusieurs étapes s’il y a plusieurs conditions combinées avec AND

enable_named_columns_in_function_tuple

Génère des tuples nommés dans la fonction tuple() lorsque tous les noms sont uniques et peuvent être considérés comme des identifiants non quotés.

enable_order_by_all

Active ou désactive le tri à l’aide de la syntaxe ORDER BY ALL, voir ORDER BY. Valeurs possibles :
  • 0 — Désactive ORDER BY ALL.
  • 1 — Active ORDER BY ALL.
Exemple Requête :
Résultat :

enable_packed_string_keys_in_aggregation

Utilise une table de hachage indexée par des références de chaînes compactes de 16 octets (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

Si la valeur est true, les données peuvent être analysées directement dans des colonnes avec une sérialisation personnalisée (par ex. Sparse), selon les indications de sérialisation obtenues depuis la table.

enable_producing_buckets_out_of_order_in_aggregation

Permet à l’agrégation économe en mémoire (voir 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

Si cette option est activée, les résultats des requêtes SELECT sont lus depuis le cache de requêtes. Valeurs possibles :
  • 0 - Désactivé
  • 1 - Activé

enable_s3_requests_logging

Active une journalisation très détaillée des requêtes S3. À utiliser uniquement pour le débogage.

enable_scalar_subquery_optimization

Si ce paramètre est défini sur true, il empêche les sous-requêtes scalaires de (dé)sérialiser de grandes valeurs scalaires et peut éviter d’exécuter la même sous-requête plusieurs fois.

enable_scopes_for_with_statement

Si cette option est désactivée, les déclarations dans les clauses WITH parentes auront la même portée que si elles étaient déclarées dans la portée actuelle. Notez qu’il s’agit d’un paramètre de compatibilité de l’analyseur permettant d’exécuter certaines requêtes non valides que l’ancien analyseur pouvait exécuter.

enable_sharding_aggregator

Active l’optimisation de 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.

enable_shared_storage_snapshot_in_query

Si cette option est activée, toutes les sous-requêtes d’une même requête partageront le même StorageSnapshot pour chaque table. Cela garantit une vue cohérente des données dans l’ensemble de la requête, même si la même table est accédée plusieurs fois. Ce paramètre est nécessaire pour les requêtes où la cohérence interne des data parts est importante. Exemple :
Sans ce paramètre, la requête externe et la requête interne peuvent s’exécuter sur des instantanés de données différents, ce qui peut entraîner des résultats incorrects. Valeurs possibles :
  • 0 - Désactivé
  • 1 - Activé

enable_sharing_sets_for_mutations

Autorise le partage des objets Set créés pour les sous-requêtes IN entre différentes tâches d’une même mutation. Cela réduit l’utilisation de la mémoire et la consommation de CPU

enable_streaming_queries

Autorise les requêtes en continu 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

Alias : allow_experimental_time_time64_type Permet de créer les types de données Time et Time64.

enable_unaligned_array_join

Autorise ARRAY JOIN sur plusieurs tableaux de tailles différentes. Lorsque ce paramètre est activé, les tableaux sont redimensionnés à la longueur du plus long.

enable_url_encoding

Permet d’activer ou de désactiver le décodage/l’encodage du chemin dans l’URI des tables utilisant le moteur URL. Désactivé par défaut.

enable_vertical_final

Si cette option est activée, les lignes dupliquées sont supprimées pendant FINAL en marquant les lignes comme supprimées, puis en les filtrant ultérieurement au lieu de les fusionner

enable_writes_to_query_cache

Lorsqu’il est activé, les résultats des requêtes SELECT sont stockés dans le cache de requêtes. Valeurs possibles :
  • 0 - Désactivé
  • 1 - Activé
Dernière modification le 18 août 2026