Améliorer les performances des requêtes grâce à la jointure adaptative - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Améliorer les performances des requêtes grâce à la jointure adaptative

Présentation

La jointure adaptative est une fonctionnalité de prévisualisation d'Aurora PostgreSQL 17.4 qui permet d'améliorer les performances des requêtes. Cette fonctionnalité est désactivée par défaut, mais vous pouvez l'activer à l'aide des paramètres de configuration utilisateur globale (GUC). Comme il s'agit d'une fonction d'aperçu, les valeurs des paramètres par défaut peuvent changer. Lorsqu'elle est activée, la jointure adaptative permet d'optimiser les performances des requêtes en passant dynamiquement d'une jointure par boucle imbriquée à une jointure par hachage lors de l'exécution. Ce changement se produit lorsque l'optimiseur PostgreSQL a mal choisi une jointure par boucle imbriquée en raison d'estimations de cardinalité inexactes.

Configuration de la jointure adaptative

Vous pouvez contrôler la jointure adaptative à l'aide de ces trois paramètres GUC :

Paramètres de configuration de jointure adaptative
Paramètre GUC Description Options par défaut et de configuration
apg_adaptive_join_crossover_multiplicateur Ce multiplicateur fonctionne avec le point de croisement des lignes pour déterminer quand passer d'une boucle imbriquée à une jointure par hachage. Le point de croisement des lignes est l'endroit où l'optimiseur SQL estime que les opérations de boucle imbriquée et de jointure par hachage ont le même coût. Une valeur de multiplicateur plus élevée réduit la probabilité que la jointure adaptative passe à une jointure par hachage.

Contrôle si la jointure adaptative est activée

  • Valeur par défaut : -1 (désactivé)

  • Plage valide : -1 à DBL_MAX

  • Pour activer : définir sur >= 1

apg_adaptive_join_cost_threshold Ce paramètre définit un seuil de coût minimal pour les requêtes. La jointure adaptative se désactive automatiquement pour les requêtes inférieures à ce seuil. Cela permet d'éviter les surcharges de performances dans les requêtes simples où le coût de planification d'une jointure adaptative pourrait dépasser les avantages du passage d'une boucle imbriquée à une jointure par hachage.

Définit le seuil de coût minimum pour la requête

  • Valeur par défaut : 100

  • Plage valide : 0 à DBL_MAX

apg_enable_parameterized_adaptive_join Ce paramètre étend la fonctionnalité de jointure adaptative aux jointures par boucles imbriquées paramétrées lorsqu'il est activé. Par défaut, la jointure adaptative fonctionne uniquement avec les jointures par boucle imbriquées non paramétrées, car elles sont plus susceptibles de bénéficier du passage à la jointure par hachage. Les jointures par boucle imbriquée paramétrées sont généralement plus performantes, ce qui rend le passage à la jointure par hachage moins critique.

Contrôle le comportement de jointure adaptatif pour les jointures par boucle imbriquée

  • Valeur par défaut : false

  • Valeurs valides : true/false

    • Lorsque faux : fonctionne uniquement avec des jointures de boucles imbriquées non paramétrées

    • Lorsque c'est vrai : fonctionne avec des jointures de boucles imbriquées paramétrées et non paramétrées

Note

Nécessite apg_adaptive_join_crossover_multiplier d'être activé au préalable