Performance bei Datenbakanbindung

07/03/2010 - 05:08 von Jakob Brunner, Luzern Switzerland | Report spam
Salü zàme
Ich arbeite an einem DLL. In diesem habe ich einige statische Funktionen.
Unter anderen auch solche, die ganz bestimmte Tabellen oder Teile davon in
einer ArrayListe zurückgeben oder dieDaten werden gleich in der betreffenden
Funktion benutzt. Ich dachte mir, um das ganz möglichst dynamisch zu halten,
binde ich die Datenbank nicht an das DLL, sondern gebe bei den betroffenen
Funktionen einen Connecting-String mit. So kann der Anwender jeweils seine
Datenbank selbst bestimmen.

Nun bin ich mir aber nicht sicher, wie sich das performance-màssig verhàlt.
Ich denke, da muss mit jedem Aufruf die Datenbank angebunden werden, um dann
den DataAdapter zu füllen. Das ist sicherlich einen mehr Arbeit, doch weiss
ich nicht, ob dieser Overhead wirklich aus der Sicht der Performance relevant
ist.
Weiss da jemand bescheid? Wie verfàhrt man sonst in einer solchen Situation?
Wàre es besser die Datenbankanbindung und allenfalls die DataAdapter als
statische Variable zu führen, damit sie bei Gebrauch des DLLs nur einmal
geladen und bereitgestellt werden müssen? Ist natürlich abhàngig von der
Hàuffigkeit der Nutzung solcher Funktionen, aber nehmen wir mal an, sie
werden doch ab und zu gebraucht.

Bin für jeden Hinweis dankbar.
Gruss & Danke
Jakob
 

Lesen sie die antworten

#1 Elmar Boye
07/03/2010 - 10:42 | Warnen spam
Hallo Jakob,

"Jakob Brunner, Luzern Switzerland" schrieb ...
Ich arbeite an einem DLL. In diesem habe ich einige statische Funktionen.
Unter anderen auch solche, die ganz bestimmte Tabellen oder Teile davon in
einer ArrayListe zurückgeben oder dieDaten werden gleich in der betreffenden
Funktion benutzt. Ich dachte mir, um das ganz möglichst dynamisch zu halten,
binde ich die Datenbank nicht an das DLL, sondern gebe bei den betroffenen
Funktionen einen Connecting-String mit. So kann der Anwender jeweils seine
Datenbank selbst bestimmen.

Nun bin ich mir aber nicht sicher, wie sich das performance-màssig verhàlt.
Ich denke, da muss mit jedem Aufruf die Datenbank angebunden werden, um dann
den DataAdapter zu füllen. Das ist sicherlich einen mehr Arbeit, doch weiss
ich nicht, ob dieser Overhead wirklich aus der Sicht der Performance relevant
ist.



Das ist dank Connection Pooling kein wirklicher Mehraufwand
und hat sogar Vorteile.
Kurzfassung: Wenn die Verbindungszeichenfolge kurz hintereinander
verwendet wird, wird bei gleicher Verbindungszeichenfolge eine Connection
aus dem Pool verwendet. Erfolgen lànger keine Abrufe werden diese freigegeben.

Für mehr siehe http://msdn.microsoft.com/de-de/lib...3tyca.aspx
"SQL Server-Verbindungspooling (ADO.NET)"

Gruß Elmar

Ähnliche fragen