Gestion de plans de requêtes - AWSConseils prescriptifs

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.

Gestion de plans de requêtes

Les changements en termes de statistiques, de contraintes, de paramètres d'environnement, de liaisons de paramètres de requêtes et de mises à niveau du moteur de base de données PostgreSQL peuvent tous provoquer une régression de plan de requêtes. La régression de plan de requêtes se produit lorsque l'optimiseur choisit un plan moins optimal qu'avant une modification donnée de l'environnement de base de données.

Dans l'édition compatible avec Amazon Aurora PostgreSQL, la fonctionnalité de gestion des plans de requêtes (QPM) est conçue pour garantir l'adaptabilité et la stabilité du plan, quelles que soient les modifications de l'environnement de base de données susceptibles d'entraîner une régression du plan de requête. QPM permet de contrôler dans une certaine mesure l'optimiseur. QPM vous permet de gérer le plan d'exécution des requêtes généré par l'optimiseur pour vos requêtes SQL. Le plan d'exécution des requêtes oblige l'optimiseur à choisir parmi vos plans approuvés pour les requêtes critiques, afin d'optimiser leurs performances.

Les entreprises déploient généralement des applications et des bases de données dans le monde entier ou gèrent plusieurs environnements pour chaque base de données d'applications, tels que le développement, l'assurance qualité, le test et la production. La gestion des plans d'exécution des requêtes pour chaque base de données, dans chaque environnement et dans l'ensembleRégions AWS peut s'avérer complexe et fastidieuse. QPM peut exporter et importer des plans gérés compatibles avec Amazon Aurora PostgreSQL d'une base de données à une autre. Cela vous permet de gérer le plan d'exécution des requêtes de manière centralisée et de déployer des bases de données dans le monde entier. Vous pouvez utiliser cette fonctionnalité pour étudier un ensemble de plans dans une base de données de préproduction, vérifier qu'ils fonctionnent correctement, puis les charger dans un environnement de production.

QPM offre également plusieurs autres avantages. Par exemple, vous pouvez utiliser QPM pour améliorer les plans d'exécution qui ne peuvent pas être modifiés dans les applications ou lorsqu'il est impossible d'ajouter des indices à la déclaration. QPM détecte également automatiquement les nouveaux plans à coût minimum découverts par l'optimiseur, afin que vous puissiez continuer à optimiser les coûts en plus des performances.

Nous vous recommandons d'activer QPM. Lorsque QPM est activé, l'optimiseur utilise le plan à coût minimum que vous avez approuvé. Cela permet d'éviter la régression et de réduire le temps nécessaire à la gestion et à la correction des plans sous-optimaux.

Il existe deux approches différentes pour utiliser la fonctionnalité QPM : proactive et réactive. L'approche proactive est conçue pour empêcher toute régression des performances, tandis que l'approche réactive est conçue pour détecter et réparer les régressions de performances une fois qu'elles se sont produites. Vous pouvez sélectionner votre approche par requête. Pour les requêtes complexes susceptibles d'être sujettes à des régressions ou pour les requêtes critiques pour l'entreprise, vous pouvez utiliser une approche proactive et approuver les plans optimaux pour ces requêtes. Si d'autres requêtes subissent une régression du plan de requêtes pendant l'exécution, vous pouvez utiliser une approche réactive. Lorsque vous détectez la régression, modifiez le statut de ce plan pourrejected que l'optimiseur choisisse un autre plan approuvé. Pour plus d'informations, voir Meilleures pratiques pour la gestion des plans de requêtes Aurora PostgreSQL (documentation Aurora).

Comment fonctionne la gestion des plans de requêtes ?

Les plans se voient attribuer l'un des statuts suivants :approvedunapproved,preferred, ourejected. L'optimiseur définit le premier plan généré pour chaque instruction gérée sur,approved puis définit le statut des plans supplémentaires surunapproved. Vous pourrez ensuite évaluer lesunapproved plans et modifier leur statut enapprovedpreferred, ourejected. Pour plus d'informations, consultez la section Présentation de la gestion des plans de requêtes Aurora PostgreSQL (documentation Aurora).

Les plans gérés peuvent être capturés manuellement ou automatiquement. L'approche la plus courante consiste à capturer automatiquement les plans pour tous les relevés exécutés deux fois ou plus. Toutefois, vous pouvez également capturer manuellement des plans pour un ensemble spécifique de relevés. Pour plus d'informations, consultez Capture des plans d'exécution d'Aurora PostgreSQL (documentation Aurora).

Une fois que vous avez configuré un plan géré, l'optimiseur utilise le coût minimalpreferred ou leapproved plan qui est valide et activé pour chaque instruction gérée. Pour des informations détaillées, voir Sélection du plan à exécuter par Aurora optimiseur.

Pour obtenir des instructions sur la configuration de la fonctionnalité QPM dans un environnement compatible avec Amazon Aurora PostgreSQL, consultez la section Gestion des plans d'exécution de requêtes pour Aurora PostgreSQL (documentation Aurora).

Limites

Pour utiliser QPM, vous devez vous assurer que vous répondez aux exigences relatives aux instructions SQL prises en charge, que vos instructions ne font pas référence aux relations système et que votre classe d'instance de base de données possède suffisamment de vCPUs. Pour plus d'informations, consultez les sections Instructions SQL prises en charge et Limitations relatives à la gestion des plans de requêtes (documentation Aurora).

Cas d'utilisation pour la gestion des plans de requêtes

  • Empêcher la régression du plan de requête : la mise à jour de la version de votre base de données présente de nombreux avantages, tels que l'amélioration des performances et de la sécurité, l'accès à de nouvelles fonctionnalités, la résolution de problèmes connus et la conformité aux exigences réglementaires. Toutefois, les mises à jour des bases de données risquent d'entraîner une régression des performances de certaines requêtes. Ce risque est plus élevé avec les mises à niveau de versions majeures, car elles peuvent contenir des modifications qui peuvent ne pas être rétrocompatibles avec les requêtes d'applications existantes. La mise en œuvre de la QPM peut aider à prévenir la régression et à stabiliser les performances lors des modifications du système. Si vous actualisez les statistiques, ajoutez un index, modifiez des paramètres ou passez à une nouvelle version d'Amazon Aurora compatible avec PostgreSQL, QPM détecte un nouveau plan mais continue à utiliser le plan approuvé, préservant ainsi la stabilité du plan.

  • Fonctionnalités de test : vous pouvez consulter l'historique des plans pour toutes les instructions SQL gérées et déterminer si les nouvelles fonctionnalités de PostgreSQL ou les modifications apportées au plan améliorent les performances. Vous pouvez ensuite décider d'implémenter ces fonctionnalités ou de nouveaux plans. Pour plus d'informations, voir Examen des plans de requête d'Aurora PostgreSQL dans la vue dba_plans (documentation d'Aurora).

  • Amélioration d'un plan : dans certains cas, vous préférerez peut-être corriger un plan non optimal plutôt que de le rejeter, de le désactiver ou de le supprimer. Pour plus d'informations, consultez la section Corriger des plans à l'aide de pg_hint_plan (documentation Aurora).