enable_join_fixed_hash_table_conversion
Permet d’activer la conversion de la table de hachage en tableau plat pour les jointures lorsque la clé est un seul entier avec une plage de valeurs réduite.enable_join_key_only_hash_tables
Utiliser des tables de hachage qui ne stockent que les join keys, sans référence à une row de droite, pour les jointures dont le résultat ne peut jamais contenir une valeur issue d’une row de droite :LEFT ANTI, et LEFT SEMI lorsqu’aucune column de droite n’est sélectionnée. Une telle table possède une cell plus petite et permet d’abandonner les blocks de droite au lieu de les stocker.
enable_join_runtime_filters
Filtre la partie gauche à l’aide de l’ensemble des clés de JOIN collectées du côté droit à l’exécution.enable_join_runtime_filters_index_analysis
Élague les granules du côté sonde d’un JOIN à l’aide du runtime filter collecté du côté construction (voirenable_join_runtime_filters).
N’a d’effet que si use_skip_indexes_on_data_read = 1.
Seule une clé de jointure qui est une colonne de clé primaire du côté sonde, ou qui est couverte par un index de saut minmax, set ou bloom_filter, peut faire l’objet d’un élagage.
Si le runtime filter a conservé les valeurs exactes des clés, le prédicat d’élagage est un set IN de ces valeurs ; sinon, c’est la plage minimum/maximum des clés qui est utilisée (l’élagage est alors moins efficace).
Ne prend effet que lorsque le côté sonde de la jointure est lu localement. Les descripteurs qui pilotent l’élagage sont attachés à l’étape de lecture lors de l’optimisation du plan de requête, mais ne sont pas conservés lorsque cette étape est reconstruite pour une exécution distante ; l’élagage des granules n’a donc pas lieu avec les répliques parallèles (enable_parallel_replicas = 1) ni avec un plan de requête distribué (make_distributed_plan = 1). Dans ces modes, le paramètre est sans effet : la requête renvoie le même résultat et le JOIN runtime filter lui-même se comporte exactement comme lorsque ce paramètre est désactivé ; seul l’élagage des granules est perdu.
L’élagage des granules est également ignoré pour une lecture du côté sonde avec FINAL (l’élagage n’est pas implémenté pour les lectures FINAL, et optimizeLazyFinal reconstruit une telle lecture sans les descripteurs), ainsi que pour une table comportant des mutations de données ou ALTER en attente, ou des patch parts. Dans ces cas, le paramètre est également sans effet, au sens décrit ci-dessus.
enable_join_transitive_predicates
Infère des prédicats de jointure d’égalité transitifs à partir des conditions de jointure existantes. Par exemple, étant donnéA.x = B.x et B.x = C.x, un prédicat synthétique A.x = C.x
est ajouté pour que l’optimiseur de l’ordre des jointures puisse envisager des plans directs (A JOIN C).