Comment puis-je chronométrer les requêtes SQL avec psql?


173

J'aimerais analyser certaines requêtes SQL par rapport à ma base de données PostgreSQL.Existe-t-il un moyen de chronométrer les requêtes SQL en utilisant psql ?

+3

Pour plus de détails sur l'analyse comparative des requêtes PostgreSQL: http://dba.stackexchange.com/q/42012/9622 15 mai. 132013-05-15 22:29:39

236

Il suffit d’allumer le timing en entrant:

\timing

+1

À partir de maintenant, l'option "-c" de 'psql' n'autorise pas ce paramètre.Vous pouvez le faire avec quelque chose comme: '' 'psql --o/dev/null < 14 juil.. 162016-07-14 17:38:46

+1

Ou alors 'psql -c '\ timing' -c 'sélectionnez-vous 1'' 24 août. 172017-08-24 02:11:57


60

Le timing peut être activé avec\timingà l'invite psql (comme Caleb l'a déjà dit).

Si vous êtes sur 8.4 ou plus,you can add an optional on/off argument to \timing, ce qui peut être utile si vous voulez pouvoirset timing on in .psqlrc- vous pouvez alors mettre\timing onexplicitement dans un script où plaine\timingserait autrement basculer

  0

http://www.designmagick.com/article/14/PostgreSQL-Query-Timing donne "Accès refusé". 22 sept.. 172017-09-22 18:01:01


1

Le temps que\timingreturn inclut également la latence du réseau, si vous vous connectez à un serveur distant.

Si vous ne le souhaitez pas et que vous n'avez pas besoin de la sortie de la requête, mieux vaut utiliserEXPLAIN ANALYZE, qui affiche le plan de requête avec les estimations du planificateur et les temps d’exécution réels.

par exemple,EXPLAIN ANALYZE SELECT foo from bar ;

  0

... le seul problème est que vous ne recevez pas la sortie de requête normale. 17 nov.. 172017-11-17 04:56:18

  0

L'utilisation de 'expliquer analyser' produit des temps environ le double de ce que je vois lorsque j'utilise' \ timing', ce qui est le contraire de ce à quoi je m'attendrais d'après les commentaires que nous avons formulés concernant la latence du réseau.Je soupçonne qu'il y a une surcharge dans l'exécution normale de 'analyser' qui ajoute au temps de requête.Sur la base de la documentation, je pense que 'EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM bar 'vous donnera plus d’informations utiles sur la synchronisation.Voir https://www.postgresql.org/docs/9.6/static/sql-explain.html pour plus de détails. 05 déc.. 172017-12-05 14:53:33