Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何在postgres中获得执行时间_Postgresql_Plpgsql - Fatal编程技术网

Postgresql 如何在postgres中获得执行时间

Postgresql 如何在postgres中获得执行时间,postgresql,plpgsql,Postgresql,Plpgsql,在plpgsql脚本中,我需要获取变量中最后一个查询的执行时间,以用于多种用途(计算、显示和存储),因此psql\timeing选项不是我想要的,因为我无法操作结果时间。您是否知道除了执行时间(或解决方法)之外,是否有类似于“获取诊断”命令的命令 除了行计数和结果oid之外,我找不到任何其他内容。您可以比较查询前后的时钟时间戳(): do $$ declare t timestamptz := clock_timestamp(); begin perform pg_sleep(random()

在plpgsql脚本中,我需要获取变量中最后一个查询的执行时间,以用于多种用途(计算、显示和存储),因此psql
\timeing
选项不是我想要的,因为我无法操作结果时间。您是否知道除了执行时间(或解决方法)之外,是否有类似于“获取诊断”命令的命令


除了
行计数
结果oid
之外,我找不到任何其他内容。

您可以比较查询前后的
时钟时间戳()

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

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


实际上我用now()试过了,因为它是事务时间,所以前后的时间都是一样的,但用clock_timestamp()就可以了!谢谢
do $$
declare t timestamptz := clock_timestamp();
begin
 perform pg_sleep(random());
 raise notice 'time spent=%', clock_timestamp() - t;
end
$$ language plpgsql;