2010-01-26 8 views

Antwort

6

Abgesehen von der Erschöpfung des Verbindungspools (wie es die meisten Antworten bisher waren), besteht die Gefahr, dass Daten gesperrt werden.

Wenn Sie in eine Tabelle lesen oder schreiben, führt eine Sperrsemantik dazu, dass bestimmte Zeilen an andere Verbindungen gebunden werden. Dies gilt insbesondere, wenn Sie eine offene Transaktion für die Verbindung haben.

Lese- und Schreibvorgänge können dann fehlschlagen, und die Anwendung löst überall Ausnahmen aus.

Kurz gesagt, schließen Sie immer die Verbindung.

+0

Auch nachdem der SQL-Befehl mit der Verbindung mit den Zeilen ausgeführt wurde? –

+0

Wenn Sie eine Transaktion geöffnet haben, dann ja. – Oded

+2

Ein Commit sollte ausreichen, um dieses Problem zu vermeiden. –

9

Früher oder später wird der Fehler "Die maximale Verbindungslimit wurde erreicht" angezeigt. Ich würde das als einen großen Nachteil bezeichnen.

1

Der Verbindungspool füllt sich und alle neuen Verbindungen warten auf eine neue Verbindung aus dem Pool.

0

Eine Verbindung zum Datenbankserver ist offen. Angenommen, Sie 100s der Programme haben die gleichen Server schlagen ...

Sie es auch ist

0

Schnell einfache Antwort entsorgen sollte, dass die früher Sie schließen, desto eher kann die Verbindung durch den Verbindungspool wiederverwendet werden.

+0

„mit Verwendung ist gut“ ist ein kleines Mantra sage ich mir, wenn zu SQL conencting. SqlConnection implementiert iDisposable, also wickeln Sie einfach Ihren SQL-Code in einen "using" -Block ein, um sicherzustellen, dass Ihre Schließung automatisch aufgerufen wird. –

1

Jede Verbindung zu SQL Server erfordert Speicherzuweisung.

Je mehr Verbindungen Sie geöffnet haben, desto mehr Speicher wird verwendet und gehalten, was möglicherweise besser genutzt werden könnte.

Wenn Sie wissen möchten, wie viel Speicher von Verbindungen in SQL Server verwendet wird, sehen Sie sich die folgende Referenz an.

Memory Used by SQL Server Objects

+0

Aktualisiert Ihre Verbindung zu MSDN, aber bei ~ 300K pro Verbindung, dies ist wahrscheinlich eine der kleineren Überlegungen ... es wird Tausende oder Zehntausende von Verbindungen dauern, bevor dies beginnt, sich bemerkbar zu machen. –

+0

+1 für den Link, obwohl –