Ja, es ist wahrscheinlich teuer, wenn Sie tatsächlich eine physische Verbindung für jede Transaktion erstellen und abbauen, es sei denn, Sie haben extrem lange laufende Transaktionen. Wenn Ihre Transaktion eine Stapelladung von einer Million Zeilen ist, sind die Kosten für das Öffnen und Schließen der Verbindung wahrscheinlich eher minimal. Wenn Ihre Transaktion andererseits aus einer einzeiligen Einfügung in eine Tabelle besteht, würde der größte Teil Ihrer Zeit damit verbracht, die Verbindung zu öffnen und zu schließen.
In den meisten Fällen verfügen Sie jedoch über eine dreischichtige Anwendung, bei der die mittlere Schicht einen Verbindungspool verwaltet. Wenn der Code der mittleren Schicht eine Verbindung öffnet und schließt, arbeitet sie eher mit einer logischen Verbindung als eine physische Verbindung. Beim Öffnen der Verbindung wird eine Verbindung aus dem Pool hergestellt, die Business-Schicht führt eine Transaktion durch und nach dem Schließen der Verbindung wird lediglich die Verbindung zum Pool zurückgegeben. Aus Datenbanksicht wird keine physikalische Verbindung geöffnet oder geschlossen. Wenn Sie tatsächlich mit Verbindungen aus einem Pool arbeiten, ist das Öffnen und Schließen der Verbindung bei jeder Transaktion vollkommen normal und sollte nicht viel Overhead generieren, vorausgesetzt, Ihr Verbindungspool ist einigermaßen groß.