Het hebben van permanente verbindingen betekent niet dat alle threads dezelfde verbinding gebruiken. Het "zegt" gewoon dat je de verbinding open houdt (in tegenstelling tot het openen van een verbinding elke keer dat je er een nodig hebt). Het openen van een verbinding is een dure operatie, dus - over het algemeen - probeer je het openen van verbindingen vaker dan nodig te vermijden.
Dit is de reden waarom toepassingen met meerdere threads vaak verbindingspools gebruiken. De pool zorgt voor het openen en sluiten van verbindingen en elke thread die een verbinding nodig heeft, vraagt er een aan bij de pool. Het is belangrijk om ervoor te zorgen dat de thread de verbinding zo snel mogelijk terugstuurt naar de pool, zodat een andere thread deze kan gebruiken.
Als uw toepassing slechts een paar langlopende threads heeft die verbindingen nodig hebben, kunt u ook voor elke thread een verbinding openen en deze open houden.
Het gebruik van slechts één verbinding (zoals u het beschreef) is gelijk aan een verbindingspool met de maximale grootte. Dit zal vroeg of laat je bottleneck worden, omdat alle threads moeten wachten op de verbinding. Dit kan een optie zijn om de databasebewerkingen te serialiseren (voer ze in een bepaalde volgorde uit), hoewel er betere opties zijn om serialisatie te garanderen.