如何确定PostgreSQL中是否有[空闲连接]未提交的事务?

Jua*_*oto 33 postgresql performance database-design

根据我对 PostgreSQL 9.2 中的空闲连接问题的评论,一些未提交的事务(可能与其中一些空闲连接有关)可能会导致一些性能问题。

确定是否存在未提交的事务的好方法是什么(如果有办法知道它们所在的连接是否空闲,则加分)?

非常感谢!

Han*_*non 29

如果您想查看有多少空闲连接有一个打开的事务,您可以使用:

select * 
from pg_stat_activity
where (state = 'idle in transaction')
    and xact_start is not null;
Run Code Online (Sandbox Code Playgroud)

这将提供处于空闲状态的打开连接列表,这些连接也有一个打开的事务。

请注意 state 列仅存在于 PostgreSQL 9.2 及更高版本中。

话虽如此,我无法在具有打开事务的空闲状态下重新创建打开连接。也许其他人可以提供有关如何执行此操作的详细信息。