Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie wirkt sich der Datenbankverbindungspool auf die Leistung aus?

Ich habe keine Leistungsstatistiken zur Hand, aber vielleicht ein Wort der Warnung bei der Verwendung von Connection Pooling:Sie könnten am Ende zu viele kleine Pools anstelle eines großen haben.

ADO.NET erstellt einen neuen Verbindungspool für

  • jede Verbindungszeichenfolge; es ist sehr Auch in dieser Hinsicht wählerisch - wenn Sie zwei Verbindungszeichenfolgen haben, die sich auch nur durch ein einziges Leerzeichen oder etwas anderes unterscheiden, werden diese als zwei separate Verbindungszeichenfolgen betrachtet und führen dazu, dass separate Verbindungspools erstellt werden

  • für alle Windows-Anmeldeinformationen, wenn die Einstellung „integrierte Sicherheit“ (vertrauenswürdige Verbindung) verwendet wird

Wenn Sie also eine Verbindungszeichenfolge wie

haben
server=MyDBServer;database=MyDatabase;integrated security=SSPI;

es wird ein Verbindungspool für jeden unterscheidbaren Benutzer erstellt - das ist eher kontraintuitiv, aber so ist es (und es kann nicht beeinflusst/abgeschaltet werden).

Sehen Sie sich die MSDN-Dokumentation an Details zum ADO.NET-Verbindungspooling:

Auch, wenn Sie diese beiden Verbindungszeichenfolgen haben:

server=MyDBServer;database=MyDatabase;user id=tom;pwd=top$secret

und

server=MyDBServer;database=MyDatabase;user id=tom; pwd=top$secret;

diese gelten als anders Verbindungszeichenfolgen, und somit werden zwei separate Verbindungspools erstellt.

Wenn Sie versuchen, den Effekt des Verbindungspoolings zu messen, sollten Sie sich dessen bewusst sein!

Markus