运行postgres函数时,如何知道哪个查询需要很长时间?

问题描述 投票:1回答:1

实际上我在postgres中运行一个函数,需要1123 + ms才能执行该函数。

该函数包括调用其他函数并执行许多查询。我怎么知道哪个查询是缓慢执行函数的罪魁祸首。

我见过 。 select * from pg_stat_activity;给出当前运行过程的输出。

运行postgres函数时是否可以获得单独的查询时间?

我知道很多人会说通过插入在数据库中记录查询时间,但是在postgres中有任何方法,这样我就可以得到每个查询的时间。

也有任何方式没有更改postgres中的配置文件,因为我不想重新启动postgres。如果没有,其他解决方案最受欢迎。

谢谢。

postgresql
1个回答
0
投票

您可以通过pg_stat_statements扩展来执行此操作,但加载它确实需要重新启动服务器。

安装后,只需SET pg_stat_statements.track = all(作为超级用户),调用您的函数,然后SELECT * FROM pg_stat_statements

除非您拥有对服务器的独占访问权限,否则您可能希望在pg_stat_statements.track = none中包含postgresql.conf的默认值,以便仅跟踪您的会话。

© www.soinside.com 2019 - 2024. All rights reserved.