Понимание формата времени команды EXPLAIN - Postgres

14

Когда я запускаю команду EXPLAIN ANALYZE для данного запроса, мне трудно интерпретировать значение времени на выходе. Например (фактическое время = 8163.890..8163.893). Внутренние десятичные дроби представляют повторяющиеся символы? Извините, это может быть нудистским вопросом, но я хочу убедиться, что правильно интерпретирую результаты.

   ->  GroupAggregate  (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)
Jmoney38
источник

Ответы:

19

actual time=8163.890..8163.893 средства

Инициализация этого шага («запуск») заняла 8163,890 мс.
Выполнение всего шага заняло 8163,893 мс.

Таким образом, в этом случае на этапе запуска этого шага была выполнена почти полная работа.

Изменить :
та же логика «применяется» к информации о стоимости

cost=2928781.21..2929243.02 средства:

Стоимость инициализации этого шага была оценена в: 2928781.21
. Стоимость выполнения шага была оценена в: 2929243.02.

(обратите внимание, что «стоимость» не имеет единицы - это произвольное значение)

Это также объясняется здесь: http://www.postgresql.org/docs/current/static/using-explain.html

a_horse_with_no_name
источник
Спасибо за информацию и за ссылку - я также нашел этот документ полезным, хотя и несколько устаревшим
Jmoney38
Спасибо за ссылку. Документ на самом деле не устарел. Более новые версии PostgreSQL показывают больше информации в плане, но основные принципы все еще применяются.
a_horse_with_no_name
Как вы интерпретируете анализ объяснения с этим во вложенном цикле (actual time=0.002..0.002 rows=0 loops=119878):? Я предполагаю, что среднее значение за цикл округлено до нуля строк, что бесполезно, но действительно ли это время означает, что стоимость выполнения настолько тривиальна, что полностью состоит из стоимости запуска?
Давос,
5

Первое число показывает, сколько времени понадобилось, чтобы вернуть первый ряд на этом шаге. Второе число - сколько времени понадобилось, чтобы вернуть последний ряд.

Скотт Марлоу
источник