我刚刚继承了一个旧的PostgreSQL安装,需要做一些诊断来找出这个数据库运行缓慢的原因。在MS SQL上,您可以使用诸如Profiler之类的工具来查看正在运行的查询,然后查看它们的执行计划。
对于PostgreSQL,有什么工具可以用来做这件事呢?我非常感谢任何人的帮助,因为我是Postgres的新手。
发布于 2015-03-11 17:47:56
使用pg_stat_statements扩展来获取长时间运行的查询。然后使用select* from pg_stat_statements order by total_time/calls limit 10得到10个最长的。然后使用explain查看计划...
发布于 2016-05-26 09:54:40
我的一般方法通常是多种方法的混合。这不需要扩展。
当然,然后解释分析可以有所帮助。但是,如果您正在查看plpgsql函数,则通常需要提取查询并直接对其运行explain analyze。
注:始终在回滚事务或只读事务中运行explain analyze,除非您知道它不会写入数据库。
https://stackoverflow.com/questions/28879761
复制相似问题