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?
Über Verbindungspooling hier können Sie nachlesen.
Solange die Verbindungszeichenfolge dieselbe ist (einschließlich Fall), werden Verbindungen aus demselben Verbindungspool genommen.
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.
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
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.
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
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 .