Aujourd'hui, j'ai expérimenté l'utilisation de expliquer analyser pour extraire les temps d'exécution de mes requêtes. J'espérais pouvoir calculer correctement leurs temps d'exécution sans l'impact des latences des requêtes, mais dans la fenêtre de l'application documentation il indique qu'il y a une surcharge de profilage à la place :
Afin de mesurer le coût d'exécution de chaque nœud du plan d'exécution, l'implémentation actuelle d'EXPLAIN ANALYZE ajoute une surcharge de profilage à l'exécution des requêtes. Par conséquent, l'exécution d'EXPLAIN ANALYZE sur une requête peut parfois prendre beaucoup plus de temps que l'exécution normale de la requête. Le montant de la surcharge dépend de la nature de la requête, ainsi que de la plate-forme utilisée. Le pire cas se produit pour les nœuds de plan qui, en eux-mêmes, nécessitent très peu de temps par exécution, et sur les machines qui ont des appels de système d'exploitation relativement lents pour obtenir l'heure du jour.
En conséquence, je m'interroge sur l'utilité de expliquer analyser car il semble que vous échangez simplement une latence avec une surcharge de profilage. Plus surprenant encore, la synchronisation de mes requêtes de base de données dans le code (Python dans mon cas avec la bibliothèque psycopg2) entraîne des temps d'exécution de requêtes plus faibles.