首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析/分析PostgreSQL上的查询

分析/分析PostgreSQL上的查询
EN

Stack Overflow用户
提问于 2015-03-05 22:08:46
回答 2查看 9.7K关注 0票数 13

我刚刚继承了一个旧的PostgreSQL安装,需要做一些诊断来找出这个数据库运行缓慢的原因。在MS SQL上,您可以使用诸如Profiler之类的工具来查看正在运行的查询,然后查看它们的执行计划。

对于PostgreSQL,有什么工具可以用来做这件事呢?我非常感谢任何人的帮助,因为我是Postgres的新手。

EN

回答 2

Stack Overflow用户

发布于 2015-03-11 17:47:56

使用pg_stat_statements扩展来获取长时间运行的查询。然后使用select* from pg_stat_statements order by total_time/calls limit 10得到10个最长的。然后使用explain查看计划...

票数 7
EN

Stack Overflow用户

发布于 2016-05-26 09:54:40

我的一般方法通常是多种方法的混合。这不需要扩展。

  1. 将log_min_duration_statement设置为捕获长时间运行的查询。
  2. 使用分析客户端应用程序来查看他们在哪些查询上花费了他们的时间。有时,有些查询持续时间较短,但却频繁重复,从而导致性能问题。

当然,然后解释分析可以有所帮助。但是,如果您正在查看plpgsql函数,则通常需要提取查询并直接对其运行explain analyze。

注:始终在回滚事务或只读事务中运行explain analyze,除非您知道它不会写入数据库。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28879761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档