我想看看在实时Django应用程序上执行哪些查询,以及它们占用了多少内存。我已经读过pg_stat_activity
可以用来监视Postgres数据库。
我有looked at the Postgres documentation,但我有一个非常简单的问题,似乎没有在那里得到解答。
如何开始使用pg_stat_activity
?我输入什么来使用它,我在哪里输入它?
答案 0 :(得分:35)
请参阅this closely related answer。
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
模块。
答案 1 :(得分:1)
登录 PGAdmin,选择您的数据库并右键单击您的数据库。 然后点击查询工具运行你的查询并运行,
Select * from pg_stat_activity;
它会向您显示所有可用的统计数据,并且您有权查看。