it-swarm.com.de

Wie kann festgestellt werden, ob in PostgreSQL [inaktive Verbindungen mit] nicht festgeschriebenen Transaktionen bestehen?

Laut einem Kommentar zu diese Frage, die ich in PostgreSQL 9.2 zu Leerlaufverbindungen gestellt habe können einige nicht festgeschriebene Transaktionen (möglicherweise im Zusammenhang mit einigen dieser Leerlaufverbindungen) Leistungsprobleme verursachen.

Was ist ein guter Weg, um festzustellen, ob nicht festgeschriebene Transaktionen vorliegen (Bonuspunkte, wenn festgestellt werden kann, ob die Verbindung, auf der sie sich befinden, inaktiv ist oder nicht)?

Vielen Dank!

26

Wenn Sie sehen möchten, wie viele inaktive Verbindungen eine offene Transaktion haben, können Sie Folgendes verwenden:

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

Dadurch wird eine Liste offener Verbindungen im Ruhezustand bereitgestellt, für die auch eine Transaktion offen ist.

Allerdings kann ich im Ruhezustand mit einer offenen Transaktion keine offene Verbindung wiederherstellen. Vielleicht kann jemand anderes Details dazu bereitstellen.

17
Max Vernon