wake-up-neo.com

.net Verbindungspooling

Ich verstehe nicht, was der Syntaxunterschied zwischen regulärer Verbindung und Verbindungspool ist.

Wenn ich die using-Taste verwende, z.

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    command.ExecuteNonQuery();
}

Ist dies der Weg, um einen Verbindungspool durchzuführen?

17
Erez

Über Verbindungspooling hier können Sie nachlesen.

Solange die Verbindungszeichenfolge dieselbe ist (einschließlich Fall), werden Verbindungen aus demselben Verbindungspool genommen.

33

Sie steuern den Verbindungspool nicht mit Verbindungen, sondern mit der Verbindungszeichenfolge. Die meisten ADO - Provider verwenden standardmäßig das Pooling.

Die using-Anweisung wird verwendet, um die Dispose-Methode des Objekts (in diesem Fall die Verbindungsklasse) aufzurufen. Auf diese Weise wird die Verbindung entweder in den Pool zurückgegeben oder getrennt, je nach Konfiguration der Verbindungszeichenfolge.

Sie sollten auch wissen, dass Verbindungen nicht direkt an den Pool zurückgegeben werden, wenn verteilte Transaktionen verwendet werden (TransactionScope in .Net 4). Die Verbindungen werden zurückgegeben, wenn die Transaktion abgeschlossen oder rückgängig gemacht wurde.

Wenn Sie nicht using verwenden, sollten Siesicherstellen, dass Sie so bald wie möglich Connection.Close() aufrufen. Besonders wenn Ihre Anwendung unter irgendeiner Form von Last ist.

18
jgauffin

Die Verwaltung des Verbindungspools wird mit SqlConnection wie oben beschrieben von Ihnen abstrahiert. Standardmäßig ist der ADO.NET-Verbindungspool aktiviert, und Sie können darüber hinaus steuern, wie das Deaktivieren oder die Poolgröße in der Verbindungszeichenfolge, z. 

Abschalten

Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;

oder Steuern von min und max

Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Min Pool Size=5; Max Pool Size=20;

Weitere Erläuterungen und Informationen zum Überprüfen des Pools http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx

11
Fadrian Sudaman

soweit ich weiss,

das Verbindungspooling wird vom ado.net-Client verwaltet, da das Herstellen von Verbindungen zu db ein kostspieliger Vorgang ist. ado.net stellt einen Pool von Verbindungen her, und wenn Sie eine Verbindung benötigen, versucht es, diese aus dem Pool zu vergeben. Selbst wenn Sie Client-Code zum Schließen der Verbindung sagen, hält ado.net diese Verbindung für eine spätere Verwendung. Sie verwalten das Pooling nicht

der Verbindungspool wird in der Datei web.config der Anwendung angegeben. Wenn Sie using-Anweisungen verwenden, sagen Sie, dass das Objekt nicht mehr verwendet werden sollte. 

2
adt

Connection Pooling bedeutet, sobald das Verbindungsobjekt geöffnet ist, wird die Verbindung immer wieder hergestellt und neu erstellt. Ado.Net speichert oder speichert das Verbindungsobjekt in Pooler . Wenn jemand später die Verbindung öffnet, wird er nicht die Reihe von Schritten ausführen, die er bereits ausgeführt hat. Jetzt wird die Verbindung einfach aus dem Verbindungspool aufgenommen, in dem sie bereits zwischengespeichert wurde.

Wenn wir die Datenbankoperationen abgeschlossen haben, müssen wir die Verbindung schließen. Dann wird diese Verbindung wieder in den Pool aufgenommen und kann beim nächsten Aufruf von Open erneut verwendet werden.

Lesen Sie mehr mit bestem Beispiel für Verbindungspooling: - http://www.gurujipoint.com/2017/07/what-is-connection-pooling-in-aspnet.html

0
Jatin Phulera

Die SQL-Verbindung defaul ist das Verbindungs-Pooling.

Sie können Ihren Verbindungspool über die Verbindungszeichenfolge konfigurieren.

Weitere Informationen zur Verbindungszeichenfolge finden Sie unter hier .

0
Pongsathon.keng