如何在Postgres中获得执行时间

Tho*_*rin 1 postgresql plpgsql

我需要在plpgsql脚本中出于多种目的(计算,显示和存储)在变量中获取最后一个查询的执行时间,所以\timing我找不到psql 选项,因为我无法操纵结果时间。您是否知道是否有类似“ get diagnostics”命令的内容,但是要执行时间(或变通)?

get diagnostics my_var := EXECUTION_TIME;
Run Code Online (Sandbox Code Playgroud)

我找不到任何东西比其他row_countresult_oid...

Dan*_*ité 6

您可以clock_timestamp()在查询之前和之后进行比较:

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

样本结果:

注意:花费时间= 00:00:00.59173