我想监控从应用程序发送到数据库的查询.为此,我发现返回的行中有pg_stat_activity行是"in transaction",但更多的时候不是这样.我要么做错了什么,要么速度不够快,看不到问题的答案,要么感到困惑,或者以上所有的一切!

有人能推荐一种最简单的方法来监控针对PostgreSQL的查询吗?我更喜欢某种易于使用的基于用户界面的解决方案(例如:SQL Server的"探查器"),但我不太挑剔.

推荐答案

使用PostgreSQL 8.4或更高版本,您可以使用contrib module pg_stat_statements来收集数据库服务器的查询执行统计信息.

在数据库中运行contrib module pg_stat_statements.sql(在ubuntu上可以在/usr/share/postgresql/<version>/contrib中找到)的SQL脚本,并将此示例配置添加到postgresql.conf(需要重新启动):

custom_variable_classes = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top # top,all,none
pg_stat_statements.save = off

要查看实时执行的查询,您可能只需要将服务器日志(log)配置为显示所有查询或具有最短执行时间的查询.为此,在postgresql中设置logging configuration parameters log_statementlog_min_duration_statement.相应地.

Postgresql相关问答推荐

如何在postquist中修剪第一/后文件名

PostgreSQL散列连接与嵌套循环和散列索引

PostgreSQL(container)中使用80K子分区表处理共享内存不足错误

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

使用 WHERE 子句创建递归视图

Postgres数据库系统已准备好接受连接和docker compose

使用 OpenCypher 和 Apache AGE 在两个顶点之间创建双向关系

PostgreSQL pg_dump 创建 sql 脚本,但它不是 sql 脚本:有没有办法让 pg_dump 创建标准的 sql 脚本?

在 postgresql 数据库 timestampz 中保留用户偏移量

Postgresql JSONB 来了.现在用什么?Hstore?JSON?EAV?

是否有 postgres CLOSEST 运算符?

保存 geodjango PointField 时出错

如何从 WSL 连接到 windows postgres 数据库

postgresql 在查询中插入空值

Postgresql SERIAL 的工作方式是否不同?

PostgreSQL:如何安装 plpythonu 扩展

从 PostgreSQL 中的时间戳获取日期

查询 JSON 列中的数组元素

如何为 postgres 编写 DELETE CASCADE?

如何在 PostgreSQL 中生成一系列重复数字?