Das Pooling auf Transaktionsebene ist hilfreich, wenn Sie über Apps verfügen, die Sitzungen im Leerlauf enthalten. PgBouncer muss Sitzungen nicht offen und im Leerlauf halten, es greift einfach eine, wenn eine neue Transaktion gestartet wird. Diese Leerlaufsitzungen kosten Sie nur eine Pgbouncer-Verbindung, keine echte Leerlauf-Pg-Sitzung mit einem Backend, das herumsitzt und Speicher und Synchronisierungsaufwand verschwendet, ohne etwas zu tun.
Der Hauptgrund, warum Sie Session-Pooling anstelle von Transaktions-Pooling wünschen, ist, wenn Sie Named Prepared Statements, Advisory Locks, Listen/Notify oder andere Funktionen verwenden möchten, die auf Sitzungsebene und nicht auf Transaktionsebene arbeiten.