Das Aufbauen einer Datenbankverbindung ist ein relativ teurer Vorgang.
Das kann bei kleinen, gezielten Abfragen die in aller Regeln von der Datenbank aus einem Cache-Hit beantwortet werden dazu führen, dass 90% der Zeit für das Aufbauen der Verbindung genutzt wird, 5% für die Abfrage und 5% für das Schliessen der Verbindung. Wird das öfter gemacht ist die Datenbank mehr damit beschäftigt die Verbindungen zu verwalten als Anfragen zu beantworten.
Die meisten guten
DB-Verbindungskomponenten (z.B. die von Corelabs / Devart) beherrschen Verbindungspooling. Damit wird eine Verbindung einmal hergestellt und dann im Hintergrund offen gehalten bis sie wieder benötigt wird. Ich würde das nutzen, weil es sich anbietet, die Ressourcen der Datenbank schont und man dennoch ein recht einfaches Fehlerhandling damit hat.