web-dev-qa-db-ja.com

PostgreSQLにコミットされていないトランザクションがある[アイドル接続]かどうかを判断するにはどうすればよいですか?

この質問はPostgreSQL 9.2のアイドル接続について尋ねました のコメントによると、一部のコミットされていないトランザクション(アイドル接続の一部に関連している可能性があります)がパフォーマンスの問題を引き起こす可能性があります。

コミットされていないトランザクションがあるかどうかを判断する良い方法は何ですか(それらが接続している接続がアイドルかどうかを知る方法がある場合のボーナスポイント)?

どうもありがとう!

26

開いているトランザクションがあるアイドル接続の数を確認する場合は、以下を使用できます。

select * 
from pg_stat_activity
where (state = 'idle in transaction')
    and xact_start is not null;

これにより、アイドル状態にあり、トランザクションも開いている開いている接続のリストが提供されます。

とは言っても、アイドル状態のトランザクションを開いている接続を再作成することはできません。おそらく、他の誰かがそれを行う方法の詳細を提供することができます。

17
Max Vernon