我正在尝试提高一个长时间运行的plpgsql存储过程的性能,但是我不知道有什么分析工具可用。有没有人能就如何分析这样的过程提供建议?
发布于 2011-02-09 01:00:34
从包括clock_timestamp()在内的过程中产生一些notices,以查看数据库将时间花在哪里。并使程序尽可能简单。
你能给我们举个例子吗?
发布于 2015-06-01 22:42:24
我们目前正在寻找这个问题的更好的答案,并偶然发现了这个工具:http://www.openscg.com/2015/02/postgresql-plpgsql-profiler/托管在:https://bitbucket.org/openscg/plprofiler
它声称提供了您正在查找的内容,包括在函数的每一行上花费的总时间。我们还没有进一步调查,但根据作者的说法,我们是乐观的。
发布于 2011-02-09 03:46:06
首先,您可以在Postgres日志文件中启用logging of all statements。日志将包含每条语句的运行时。通过这种方式,您可以识别最慢的查询,并尝试对其进行优化。
但是读了你对Frank文章的评论,我猜循环是你的问题。试着摆脱循环,在一个查询中做所有的事情。一条读取很多行的语句通常比许多只读取几行的语句效率更高。
https://stackoverflow.com/questions/4935629
复制相似问题