LINUX.ORG.RU

postgresql фактическое время выполнения запроса меньше значения total_time

 


0

1

Здравствуйте, подскажите пожалуйста, есть postgres 13 версии, создана БД с таблицей mytable размером 650 Мб. Выполняю однократно запрос select * from mytable, запрос по факту выполнялся 43 секунды (проверял с включенным timing), но если посмотреть в pg_stat_statements , то вижу, что total_time указано 19795.10915 (значение calls 1). Почему такое различие в 2,3 раза между фактическим выполнением запроса и выводом total_time?

Из pg_stat_statements получаю таким запросом:

select datname, query, calls, (total_plan_time + total_exec_time) as total_time, rows, shared_blks_hit, shared_blks_read, ((total_plan_time + total_exec_time)/calls) as avg_time from pg_stat_statements  join pg_database d on pg_stat_statements.dbid = d.oid order by total_time desc limit 10;

Перемещено hobbit из general



Последнее исправление: wiremann (всего исправлений: 2)

так запусти с EXPLAIN и оно тебе все распишет

PS BTW pg_stat_statements.track_planning default Off

kindof
()
Последнее исправление: kindof (всего исправлений: 1)
Ответ на: комментарий от wiremann

select * from mytable, запрос по факту выполнялся 43 секунды (проверял с включенным timing)

Не исключено, что 43 секунды - это он выдал первую порцию данных. Реально же оно выбирается, в самом деле, в 2.3 раза больше.

tiinn ★★★★★
()

При соблюдении некоторых условий Postgres может выполнять запрос параллельно. EXPLAIN это показывает.

AnDoR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.