如何使用pg_stat_activity?

时间:2013-07-15 12:15:01

标签: debugging postgresql

我想看看在实时Django应用程序上执行哪些查询,以及它们占用了多少内存。我已经读过pg_stat_activity可以用来监视Postgres数据库。

我有looked at the Postgres documentation,但我有一个非常简单的问题,似乎没有在那里得到解答。

如何开始使用pg_stat_activity?我输入什么来使用它,我在哪里输入它?

2 个答案:

答案 0 :(得分:35)

请参阅this closely related answer

pg_stat_activitypg_catalog架构中的一个视图。

您可以像SELECT一样通过它查询它,就像任何其他表格一样,例如SELECT * FROM pg_stat_activity。您链接的手册页解释了其列。

您有时会发现自己想要加入其他表格,例如pg_class(表格),pg_namespace(架构)等。

pg_stat_activity 公开有关后端内存使用的信息。您需要使用操作系统级设施。它 告诉您进程ID,活动用户,当前正在运行的查询,活动状态,上次查询开始的时间等。它有助于识别长时间运行的idle in transaction个会话,非常长时间运行的查询等。

坦率地说,PostgreSQL的内置监控相当简陋。这是一个令人兴奋的领域之一,商业客户往往不愿意为其提供资金。大多数人将check_postgres等工具与Icinga和Munin结合使用,或者使用Zabbix或其他外部监控代理。

在你的情况下,听起来你真的想要pg_stat_statements和/或PgBadger日志分析与合适的日志设置和可能的auto_explain模块。

答案 1 :(得分:1)

登录 PGAdmin,选择您的数据库并右键单击您的数据库。 然后点击查询工具运行你的查询并运行,

Select * from pg_stat_activity;

它会向您显示所有可用的统计数据,并且您有权查看。