PostgreSQL进程"在事务中空闲"时,这意味着什么?

在我正在查看的服务器上,"ps ax | grep postgres"的输出显示9个PostgreSQL进程,如下所示:

postgres: user db 127.0.0.1(55658) idle in transaction

这是否意味着某些进程被挂起,等待提交事务?如有任何相关文档的提示,我们将不胜感激.

推荐答案

PostgreSQL manual表示这意味着事务处于打开状态(在BEGIN内部)且处于空闲状态.这很可能是一个正在思考或打字的用户使用显示器连接.我的系统里也有很多.

但是,如果您使用Slony进行复制,Slony-I FAQ表示idle in transaction可能意味着网络连接突然终止.查看该常见问题解答中的讨论,了解更多详细信息.

Postgresql相关问答推荐

有没有方法可以设置postGER中非空列的默认值?

Pogresql性能中的枚举与文本数据类型

列索引8上的扫描错误,名称已复制:不支持扫描,正在存储驱动程序.值类型[]uint8到类型*[]*bool

当条件的计算结果为假(或真)时停止执行查询

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

PG 16 的 AGE 安装抛出错误:无法创建 src/backend/parser/ag_scanner.c

如何创建一个触发器来传播对主键表的更新?

如何在typeorm和嵌套js中将运行时变量设置为postgresql

Django + Postgres + 大时间序列

postgresql查询中的正则表达式不区分大小写

PG::TRDeadlockDetected:ERROR: deadlock detected

从局域网访问 PostgreSQL 服务器

如何在 Postgresql 中正确使用 FETCH FIRST?

Postgres - 如果找不到记录,则在更新时返回错误

Django 1.9.2 AssertionError:database connection isn't set to UTC

按任意时间间隔计算行数的最佳方法

SQLAlchemy 声明式:定义触发器和索引 (Postgres 9)

使用 Spring、Hibernate 和 C3P0 管理多租户 Web 应用程序中的连接池

psql 将默认 statement_timeout 设置为 postgres 中的用户

重命名 Amazon RDS 主用户名