Il pooling a livello di transazione sarà di aiuto se disponi di app che tengono sessioni inattive. PgBouncer non avrà bisogno di mantenere le sessioni aperte e inattive, ne prende solo una quando viene avviata una nuova transazione. Quelle sessioni inattive ti costano solo una connessione pgbouncer, non una vera sessione inattiva Pg con un back-end seduto a sprecare memoria e sovraccarico di sincronizzazione senza fare nulla.
Il motivo principale per cui vorresti il pool di sessioni anziché il pool di transazioni è se desideri utilizzare istruzioni preparate con nome, blocchi di avviso, ascolto/notifica o altre funzionalità che operano a livello di sessione e non a livello di transazione.