Amélioration des performances des requêtes à l’aide d’une 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élioration des performances des requêtes à l’aide d’une jointure adaptative

Présentation

La jointure adaptative est une fonctionnalité de présentation 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 fonctionnalité de présentation, 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 de boucle imbriquée à une jointure de hachage lors de l’exécution. Ce changement se produit lorsque l’optimiseur PostgreSQL a mal choisi une jointure de boucle imbriquée en raison d’estimations de cardinalité inexactes.

Configuration de jointure adaptative

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

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 de ligne pour déterminer quand passer d’une boucle imbriquée à une jointure de hachage. Le point de croisement de ligne est l’endroit où l’optimiseur SQL estime que les opérations de boucle imbriquée et de jointure de 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 de 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éfinissez 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 de 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, lorsqu’il est activé, étend la fonctionnalité de jointure adaptative aux jointures par boucles imbriquées paramétrées. 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 de hachage. Les jointures par boucle imbriquée paramétrées sont généralement plus performantes, ce qui rend le passage à la jointure de hachage moins critique.

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

  • Valeur par défaut : false

  • Valeurs valides : true/false

    • Lorsque la valeur est false : fonctionne uniquement avec des jointures de boucles imbriquées non paramétrées

    • Lorsque la valeur est true : fonctionne avec des jointures de boucles imbriquées paramétrées et non paramétrées

Note

Il est nécessaire que le apg_adaptive_join_crossover_multiplier soit activé au préalable