gpt4 book ai didi

postgresql - pg_stat_activity - 如何查看正在运行的存储过程中的当前事件

转载 作者:行者123 更新时间:2023-11-29 14:13:43 41 4
gpt4 key购买 nike

我有一个 postgres 环境,其中存储过程被广泛使用并且这些过程很复杂并且调用其他存储过程。

当我查询 pg_stat_activity 表时,我得到一条显示正在调用的过程的记录,但没有给出关于在该过程中调用了哪些 sql 语句的指示。

例如。选择 myprocname($1,$2,$3,$4)

因此,我无法隔离可能导致性能问题的特定 SQL 语句。有问题的 RDS 是一个亚马逊 RDS 实例,因此操作系统级别的进程访问权限不可用(据我所知)。

我已经在谷歌上搜索了关于这个主题的信息,但运气不佳。

这个问题不是关于具体的场景,因为代码是专有的,我不能直接讨论它,而是关于当我习惯使用的主要源没有提供足够的细节时如何执行这样的调整。

最佳答案

有两种方法可以查看函数内的 SQL 语句需要多长时间:

  1. 启用auto_explain使用 auto_explain.log_nested_statements = on。这将使您能够在 PostgreSQL 日志文件中查看函数内 SQL 语句的持续时间和执行计划。

  2. 启用pg_stat_statements并设置参数 pg_stat_statements.track = all

    然后 pg_stat_statements 将跟踪函数内 SQL 语句的信息。这样您就可以看到您的哪些语句在数据库中消耗了多少时间。

关于postgresql - pg_stat_activity - 如何查看正在运行的存储过程中的当前事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56741860/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com