Les bases de données sont des requêtes. Vous y stockez vos données et vous devez ensuite pouvoir les récupérer d'une manière ou d'une autre. Voici les requêtes - vous les écrivez dans un langage, structuré ou non, de cette façon vous définissez les données que vous souhaitez récupérer. Idéalement, ces requêtes seraient rapides, après tout, nous ne voulons pas attendre nos données. Il existe de nombreux outils qui vous permettent de comprendre le comportement et les performances de vos requêtes. Dans cet article de blog, nous comparerons pgDash et ClusterControl. Dans les deux cas, les performances des requêtes ne sont qu'une partie de la fonctionnalité. Sans plus tarder, examinons-les.
Qu'est-ce que pgDash ?
pgDash est un outil dédié à la surveillance de PostgreSQL et la surveillance des performances des requêtes est l'une des fonctionnalités disponibles.
pgDash nécessite pg_stat_statements pour obtenir les données. Il est possible d'afficher les requêtes par base de données. Vous pouvez définir quelles colonnes doivent être visibles (par défaut, certaines d'entre elles ne sont pas affichées, pour faciliter la lecture des données). Vous pouvez voir plusieurs types de données comme le temps d'exécution (moyenne, max, min, total) mais aussi des informations sur les blocs temporaires, les lignes accédées, l'accès au disque et l'accès au tampon. Cela crée un bon aperçu de la façon dont une requête donnée fonctionne et de la raison pour laquelle elle ne fonctionne pas de manière efficace. Vous pouvez trier les données en utilisant n'importe quelle colonne en recherchant les requêtes qui, par exemple, sont les plus lentes ou qui écrivent les blocs les plus temporaires.
Si nécessaire, vous pouvez rechercher des requêtes exécutées dans une fenêtre de temps définie.
La granularité ici est d'une minute.
Pour chaque requête de la liste, vous pouvez cliquer et voir des statistiques plus détaillées.
Vous pouvez voir la requête exacte, certaines données dessus (accès au disque, accès au tampon partagé, accès aux blocs temporaires). Il est également possible d'activer le test et le stockage du plan d'exécution des requêtes. Enfin, vous pouvez voir les graphiques montrant comment les performances de la requête ont changé dans le temps.
Dans l'ensemble, pgDash présente un bon aperçu des mesures de performances des requêtes dans PostgreSQL.
Surveillance et gestion des requêtes PostgreSQL de ClusterControl
ClusterControl est livré avec Query Monitor qui est destiné à donner aux utilisateurs un aperçu des performances de leurs requêtes. Query Monitor peut être utilisé pour PostgreSQL mais aussi pour MySQL et Galera Cluster.
ClusterControl affiche les données agrégées sur toutes les bases de données et tous les hôtes du cluster. La liste des requêtes contient des informations sur les métriques liées aux performances. Nombre d'occurrences, lignes examinées, tables temporaires, temps d'exécution maximum, moyen et total. La liste peut être triée à l'aide de certaines colonnes (occurrences, max, moyenne, écart type et temps d'exécution total).
Chaque requête peut être cliquée, elle affiche le texte complet de la requête, quelques détails et les conseils généraux d'optimisation.
ClusterControl est également livré avec le module Query Outliers.
Si des requêtes s'écartent des performances moyennes de cette requête particulière type, ils seront affichés dans cette section, permettant à l'utilisateur de mieux comprendre quelles requêtes se comportent de manière incohérente et d'essayer d'en trouver la cause première.
Métriques de table et d'index PostgreSQL
En plus des données directement liées aux performances de la requête, les deux outils fournissent des informations sur d'autres éléments internes susceptibles d'affecter les performances de la requête.
pgDash a une section "Outils" dans laquelle vous pouvez collecter des informations sur les index, la taille des tables et le gonflement :
Des données similaires sont disponibles dans ClusterControl, dans Query Statistics :
Il est possible de vérifier les statistiques d'E/S pour la table et les index, surcharge des tables et des index, index inutilisés ou dupliqués. Vous pouvez également vérifier quelles tables sont les plus susceptibles d'être consultées à l'aide d'index ou de parcours séquentiels. Vous pouvez également vérifier la taille des plus grandes tables et bases de données.
Conclusion
Nous espérons que ce court blog vous donnera un aperçu de la façon dont ClusterControl se compare à pgDash dans les fonctionnalités liées aux performances des requêtes. N'oubliez pas que ClusterControl est destiné non seulement à vous aider à surveiller les performances, mais également à créer et déployer des piles HA pour plusieurs bases de données Open Source, à effectuer la gestion de la configuration, à définir et à exécuter des calendriers de sauvegarde et bien d'autres fonctionnalités. Si vous êtes intéressé par ClusterControl, vous pouvez le télécharger gratuitement.