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.

PEV2 Diagram

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.

PEV2 Layout with tabs

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”.

PEV2 Layout with tabs

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.

PEV2 Selection highlight

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.


DALIBO

DALIBO est le spécialiste français de PostgreSQL. Nous proposons du support, de la formation et du conseil depuis 2005.