Chambéry, le 26 janvier 2021
L’outil de visualisation de plan d’exécution PEV2 a bien évolué en un an. Découvrez les nouveautés !
Déjà plus d’un an !
À l’automne 2019, je vous faisais part d’un nouveau projet. Derrière le nom de code PEV2 se cache un outil pour visualiser et interpréter plus facilement les plans d’exécution renvoyés par PostgreSQL avec la commande EXPLAIN.
Il était initialement développé dans le but d’être intégré comme simple visualisateur dans d’autres outils sous la forme d’un composant facilement intégrable.
Moi-même très enthousiaste sur le potentiel du projet, je l’avais présenté lors d’un lightning talk à la PG Conf Europe Milan (octobre 2019) puis à nos PGSessions (novembre 2019).
Ce qui n’était, au début, qu’une modernisation de PEV s’est avéré utile et apprécié. Depuis lors, l’outil s’est doté de quelques fonctionnalités intéressantes.
Prise en compte des versions récentes
Avec le développement continu de PostgreSQL, le contenu des plans d’exécution évolue également.
PEV2
fait en sorte de prendre en compte ces changements ou nouveautés.
On peut citer notamment :
- informations sur la parallélisation et les workers,
- nouveaux types de nœuds,
- changement de structure des plans (ex. stats sur la planification),
- prise en compte de l’option WAL (apparu dans PG13),
- etc.
Diagramme
Dernière ce nom un peu barbare se cache une fonctionnalité qui semble remporter
les suffrages auprès des utilisateurs. Cette fonctionnalité démarque PEV2
des
autres outils comme Depesz ou PEV.
Dans le diagramme, qui s’affiche sur la partie gauche de l’écran, les informations des nœuds sont représentées par des barres de taille différente. Le tout dans un tableau ce qui permet d’un seul coup d’œil de comparer les nœuds pour une métrique donnée.
Dans l’exemple ci-dessous, on peut assez facilement déterminer quels nœuds prennent plus de temps.
Présentation organisée des infos
L’affichage des données de détail pour chaque nœud a eu droit à un petit lifting. Les informations sont maintenant organisées dans des onglets ce qui permet de les rendre plus claires et concises.
Statistiques globales
Dans certains cas, il peut être utile de savoir combien de nœuds ont récupéré des données issues d’une table en particuler. Ou bien encore, on veut pouvoir connaître la liste des index qui ont été utilisés, etc.
Désormais, ces infos sont rassemblées dans un nouvel onglet “Stats”.
Lien direct vers un nœud
Une des dernières fonctionnalités ajoutée dans PEV2
est relativement
discrète mais peut s’avérer très utile : le fonctionnement de la sélection et de
la mise en évidence des nœuds a été revu.
Vous noterez qu’un index est maintenant affiché pour chaque nœud. Cet index est cliquable. Il permet de sélectionner le nœud afin de le mettre en évidence. Et ce, à la fois dans le graphique principal mais aussi dans le diagramme.
Autre avantage qui peut vous intéresser dans les cas où vous voulez partager vos plans et mettre l’accent sur un nœud en particulier. En utilisant le service explain.dalibo.com, vous pouvez désormais fournir à vos interlocuteurs un lien direct vers le nœud de votre choix. En cliquant sur ce lien, la page s’ouvrira avec le nœud automatiquement sélectionné et centré dans l’interface.
En voici un exemple : https://explain.dalibo.com/plan/hqD#/node/70
Testez par vous-même.
PEV2 en local
Une info qui est peut-être passée inaperçue : PEV2
peut être utilisé en
local. Pas besoin de recourir au service explain.dalibo.com.
On peut imaginer plusieurs cas de figure dans lequel ça vous sera utile :
- le serveur sur lequel vous travaillez n’a pas accès à internet,
- vous craignez que vos données sensibles soient diffusées,
- vous souhaitez monter votre propre service.
Pour cela, il vous suffit de récupérer l’archive pev2.tar.gz
disponible en
téléchargement sur la page de la dernière release. Ensuite, il vous faut
simplement extraire cette archive et ouvrir le fichier index.html
dans un
navigateur et le tour est joué. Vous avez alors une application qui fonctionne
entièrement localement.
Et pour rappel, il y a ce qu’il faut pour pouvoir l’intégrer comme composant dans d’autres outils (de supervision par exemple).
Fans de PEV2 ?
Vous êtes un utilisateur régulier de cet outil ? N’hésitez pas à nous le faire savoir. Nous sommes preneurs de retour. Témoignez !
Comment l’utilisez vous ? Localement ? Via explain.dalibo.com ?
Et d’après vous, que manque-t-il ? Qu’est-ce qui pourrait être amélioré ?
Remerciements
N’étant moi-même pas DBA, je fais régulièrement appel à mes collègues pour m’aider à comprendre les subtilités du planificateur. Et comme explain.dalibo.com est un outil qu’ils utilisent eux-mêmes au quotidien pour leur mission de support, ils sont les premiers à me faire des retours utilisateur pour ce qui concerne l’interface ou les fonctionnalités. Quand je ne les désigne pas volontaires comme cobayes pour tester des nouveautés sur lesquelles je travaille. ;-)
Je tiens donc à les remercier chaleureusement.
Pierre Giraud est le créateur de PEV2, un projet du Dalibo Labs.