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 (ou adaptive_aggregator_freeze_threshold_bytes de mémoire), 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_alp_codec

Permet d’utiliser le codec de compression expérimental ALP.

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_function_early_short_circuit

Active le repliement anticipé des constantes avec évaluation en court-circuit pour and et or lors de l’analyse des requêtes. Lorsqu’elle est activée, les branches inaccessibles admissibles des sous-requêtes scalaires sont analysées afin de préserver leurs types et de valider la sémantique des requêtes, mais elles ne sont pas exécutées. L’optimisation revient à une analyse ordinaire lorsque la cardinalité scalaire ou des valeurs d’exécution sont requises.

enable_global_with_statement

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

enable_group_by_top_k_optimization

Active l’optimisation du filtrage TopK lors de l’agrégation dans les requêtes GROUP BY keys ORDER BY <prefix of keys> LIMIT K, ainsi que dans les requêtes GROUP BY keys LIMIT K sans ORDER BY (dans ce cas, n’importe quels K groupes constituent un résultat valide, un tri sur toutes les clés est donc généré). Lorsqu’elle est activée, l’agrégateur maintient un tas de taille limitée contenant les K clés les mieux classées rencontrées jusqu’à présent et n’insère pas de nouvelles lignes dans la table de hachage lorsque leur clé de regroupement ne peut pas figurer dans le résultat final. Cela évite d’agréger des lignes qui seraient écartées par le ORDER BY ... LIMIT ultérieur et, lorsque le tas classe la clé GROUP BY complète, supprime également les groupes évincés de la table de hachage intermédiaire, dont la taille est alors limitée par le LIMIT plutôt que par le nombre de clés distinctes. Lorsque le ORDER BY ne couvre qu’un préfixe strict des clés GROUP BY, le classement ne peut pas identifier un groupe complet ; seules des lignes sont donc ignorées : la table de hachage conserve chaque groupe admis et peut toujours croître en fonction de la cardinalité des colonnes de clés restantes. L’optimisation est désactivée lorsque le LIMIT demandé est supérieur à query_plan_max_limit_for_top_k_optimization ou au plafond fixe de 100000, car le coût du tas en mémoire et en CPU augmente avec le LIMIT demandé. L’optimisation est ignorée pour les formes de requêtes où la suppression de groupes pourrait modifier le résultat, notamment avec WITH TOTALS, HAVING, QUALIFY, les fonctions de fenêtre, ROLLUP/CUBE/GROUPING SETS, LIMIT WITH TIES, un COLLATE sur l’une des clés GROUP BY correspondantes (un COLLATE sur une colonne ORDER BY située après le préfixe de clé complet ne peut pas affecter les groupes retenus et ne désactive donc pas l’optimisation), un ORDER BY sur un agrégat ou sur tout élément qui n’est pas un préfixe initial des clés GROUP BY, ainsi que lorsque max_rows_to_group_by ou exact_rows_before_limit est défini. Valeurs possibles :
  • 0 — Désactivé.
  • 1 — Activé.

enable_hash_join_row_store

Active la transformation de la charge utile d’une jointure de hachage en stockage par lignes.

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_quantized_codec

Permet d’utiliser le codec de compression expérimental Quantized.

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_sz3_codec

Permet d’utiliser le codec de compression expérimental SZ3.

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é

enable_zxc_codec

Autorise l’utilisation du codec de compression expérimental ZXC.
Dernière modification le 27 août 2026