如何在postgres中获取执行时间

How to get execution time in postgres

我需要在 plpgsql 脚本中获取变量中最后一个查询的执行时间用于多种目的(计算、显示和存储),所以 psql \timing 选项不是我所看到的因为我无法操纵结果时间。你知道是否有类似 "get diagnostics" 命令的东西,但执行时间(或解决方法)?:

get diagnostics my_var := EXECUTION_TIME;

除了 row_countresult_oid...

我找不到其他任何东西

可以对比clock_timestamp()查询前后:

do $$
declare t timestamptz := clock_timestamp();
begin
 perform pg_sleep(random());
 raise notice 'time spent=%', clock_timestamp() - t;
end
$$ language plpgsql;

示例结果:

NOTICE: time spent=00:00:00.59173