FAQ - AWS Conseils 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.

FAQ

Trouvez les réponses aux questions fréquemment posées sur le réglage des performances des requêtes.

Qu'est-ce que EXPLAIN ?

EXPLAINest un mot clé que vous ajoutez à une requête PostgreSQL SELECT (UPDATE,, INSERTDELETE,) pour générer un plan de requête. Le plan de requête PostgreSQL détaille la manière dont la base de données entend exécuter la requête. Ce plan inclut des informations sur l'ordre d'analyse d'une table, l'utilisation de l'index et les jointures.

Utilisez le plan de requêtes pour identifier les goulots d'étranglement potentiels, optimiser les requêtes et améliorer les performances globales. Lorsque vous examinez le plan de requête, tenez compte des facteurs suivants :

  • Approches d'accès aux tables

  • Joignez les approches

  • Conditions du filtre

  • Opérations de tri

  • Utilisation de l'index

  • Parallelism

  • Statistiques

  • Estimations des coûts

  • Lignes extraites de chaque étape

  • Distribution de données

Pour plus d'informations sur EXPLAIN, consultez la documentation de PostgreSQL.

Qu'est-ce que EXPLAIN ANALYZE ?

Lorsque vous préparez EXPLAIN ANALYZE une requête et que vous l'exécutez, PostgreSQL exécute la requête et renvoie à la fois le plan de requête et les statistiques d'exécution. Le temps d'exécution réel, les lignes traitées à partir de chaque étape et les autres informations pertinentes sont affichés avec le plan de requête. L'utilisation EXPLAIN ANALYZE sur une base de données de production doit être effectuée avec prudence, car l'exécution de la requête peut avoir un impact sur les performances de la base de données pendant l'analyse.

Pour plus d'informations sur EXPLAIN ANALYZE, consultez la documentation de PostgreSQL.

Qu'est-ce que le classement dans PostgreSQL ?

Dans PostgreSQL, un classement est un ensemble de règles permettant de déterminer comment les chaînes sont comparées et triées. Le classement définit l'ordre dans lequel les caractères sont pris en compte dans les comparaisons, en tenant compte des règles et des conversions spécifiques à la langue.

Pour plus d'informations sur le classement, consultez la documentation de PostgreSQL.

Qu'est-ce qu'un CTE ?

Dans une base de données PostgreSQL, une expression de table commune (CTE) est un jeu de résultats temporaire nommé auquel vous pouvez faire référence. Les CTE permettent de créer des requêtes SQL plus lisibles et plus modulaires en décomposant la logique complexe en unités nommées plus petites.

Pour plus d'informations sur les CTE, consultez la documentation de PostgreSQL.

Quelles sont les catégories de fonctions dans PostgreSQL ?

Chaque fonction PostgreSQL possède une classification de volatilité, les possibilités VOLATILE étant STABLE les suivantes : IMMUTABLE

  • VOLATILE — Une VOLATILE fonction peut tout faire, y compris modifier la base de données. Il peut renvoyer des résultats différents lors d'appels successifs avec les mêmes arguments. L'optimiseur ne fait aucune hypothèse quant au comportement de telles fonctions. Une requête utilisant une fonction volatile réévaluera la fonction à chaque ligne où sa valeur est requise.

  • STABLE — Une STABLE fonction ne peut pas modifier la base de données. Il est garanti de renvoyer les mêmes résultats avec les mêmes arguments pour toutes les lignes d'une seule instruction. Lorsque vous utilisez cette classification, l'optimiseur peut optimiser plusieurs appels de la fonction en un seul appel. En particulier, il est prudent d'utiliser une expression contenant une telle fonction dans une condition d'analyse d'index. (Étant donné qu'une analyse d'index n'évaluera la valeur de comparaison qu'une seule fois, et non une fois par ligne, il n'est pas valide d'utiliser une VOLATILE fonction dans une condition d'analyse d'index.)

  • IMMUABLE — Une IMMUTABLE fonction ne peut pas modifier la base de données et il est garanti qu'elle renverra les mêmes résultats pour toujours avec les mêmes arguments. Lorsque vous utilisez cette classification, l'optimiseur peut préévaluer la fonction lorsqu'une requête l'appelle avec des arguments constants. Par exemple, une requête telle que celle-ci SELECT ... WHERE x = 2 + 2 peut être simplifiée à vueSELECT ... WHERE x = 4, car la fonction sous-jacente à l'opérateur d'addition d'entiers est marquéeIMMUTABLE.

VOLATILEest la valeur par défaut si la CREATE FUNCTION commande ne spécifie aucune catégorie. Pour plus d'informations sur les types de fonctions, consultez la documentation de PostgreSQL.