如何使用pg_stat_activity?

Ric*_*ard 26 postgresql debugging

我想看看在实时Django应用程序上执行哪些查询,以及它们占用多少内存.我读过这pg_stat_activity对监视Postgres数据库很有用.

我查看了Postgres文档,但是我有一个非常简单的问题,似乎没有在那里得到解答.

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

Cra*_*ger 42

看到这个密切相关的答案.

pg_stat_activity是pg_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模块.

  • 更短:`TABLE pg_stat_activity;` (4认同)

Ume*_*til 13

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

Select * from pg_stat_activity;
Run Code Online (Sandbox Code Playgroud)

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