Comprendre le format d'heure de la commande EXPLAIN - Postgres

14

Lorsque j'exécute la commande EXPLAIN ANALYZE sur une requête donnée, j'ai du mal à interpréter la valeur de temps sortie. Par exemple (heure réelle = 8163.890..8163.893). Les décimales internes représentent-elles des caractères répétitifs ?? Désolé, cela peut être une question noobish, mais je veux m'assurer que j'interprète correctement les résultats.

   ->  GroupAggregate  (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)
Jmoney38
la source

Réponses:

19

actual time=8163.890..8163.893 veux dire

L'initialisation de cette étape ("démarrage") a pris 8163.890ms L'
exécution de l'étape entière a pris 8163.893ms

Donc, dans ce cas, presque tout le travail a été effectué dans la phase de démarrage de cette étape.

Modifier :
la même logique est "appliquée" aux informations de coût

cost=2928781.21..2929243.02 veux dire:

Le coût pour initialiser cette étape a été estimé à: 2928781.21
Le coût pour exécuter l'étape a été estimé à: 2929243.02

(notez que le "coût" n'a pas d'unité - c'est une valeur arbitraire)

Ceci est également expliqué ici: http://www.postgresql.org/docs/current/static/using-explain.html

un cheval sans nom
la source
Merci pour l'information et le lien - J'ai aussi trouvé ce document utile, quoique quelque peu dépassé
Jmoney38
Merci pour le lien. Le document n'est pas vraiment dépassé. Les versions plus récentes de PostgreSQL affichent plus d'informations dans le plan, mais les principes de base s'appliquent toujours.
a_horse_with_no_name
Comment interprétez-vous une analyse expliquer avec cela dans une boucle imbriquée: (actual time=0.002..0.002 rows=0 loops=119878)? Je suppose que la moyenne par boucle a arrondi à zéro lignes, ce qui n'est pas utile, mais ces temps signifient-ils vraiment que le coût d'exécution est si trivial qu'il se compose entièrement de coût de démarrage?
Davos
5

Le premier nombre est le temps qu'il a fallu pour renvoyer la première ligne de cette étape. Le deuxième nombre est le temps qu'il a fallu pour retourner la dernière ligne.

Scott Marlowe
la source