分析/分析PostgreSQL上的查询

分析/分析PostgreSQL上的查询,sql,postgresql,plpgsql,postgresql-8.4,Sql,Postgresql,Plpgsql,Postgresql 8.4,我刚刚继承了一个旧的PostgreSQL安装,需要进行一些诊断以找出此数据库运行缓慢的原因。在MS SQL上,您可以使用探查器等工具查看正在运行的查询,然后查看它们的执行计划 有哪些工具(如果有的话)可以用于PostgreSQL?我非常感谢您的帮助,因为我是Postgres的新手。使用扩展来获取长时间运行的查询。然后使用select*from pg_stat_语句按总时间/调用次数的顺序描述限制10,以获得十个最长的值。然后使用查看计划…我的一般方法通常是多种方法的混合。这不需要扩展 设置log

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


有哪些工具(如果有的话)可以用于PostgreSQL?我非常感谢您的帮助,因为我是Postgres的新手。

使用扩展来获取长时间运行的查询。然后使用select*from pg_stat_语句按总时间/调用次数的顺序描述限制10,以获得十个最长的值。然后使用查看计划…

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

  • 设置log_min_duration_语句以捕获长时间运行的查询。你应该开始了

  • 使用客户端应用程序的分析来查看他们在哪些查询上花费时间。有时,查询持续时间很短,但重复次数太多,导致性能问题

  • 当然,然后解释分析会有所帮助。但是,如果您正在查看plpgsql函数内部,通常需要取出查询并直接对其运行解释分析


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

    问题在于此数据库当前的版本为8.4.xx,而自动解释在这方面是不受支持的。那么第一个任务应该尝试升级到一个更新的版本。8.4不仅是生命的终结,而且在速度方面有许多改进,可能会使您的整个情况变得更好。
    自动解释
    适用于第8.4页。看见但无论如何都要升级到当前版本。相关:升级甚至可能解决一些性能问题:添加到配置并重新启动后,还需要运行命令
    create extension pg_stat_statements