Frage

  • Was ist es?
  • Wie implementiere ich das Verbindungspooling mit MS SQL?
  • Was sind die Auswirkungen, wenn die Leistung
    • Ausführung von vielen Abfragen einen nach dem anderen (d.h.die Verwendung einer Schleife mit 30K+ Iterationen Aufruf einer gespeicherten Prozedur)?
    • Ausführung ein paar Abfragen, die dauert eine lange Zeit (10+ min)?
  • Gibt es best practices?
War es hilfreich?

Lösung

Connection pooling ist ein Mechanismus zur Wiederverwendung von verbindungen, wie die Gründung einer neuen Verbindung ist langsam.

Wenn Sie einen MSSQL-Verbindung-string und System.Daten.SqlClient dann sind Sie bereits mit ihm - in .Netto-dieses Zeug unter der Haube, die meisten der Zeit.

Ein loop von 30k Iterationen könnte besser sein, als eine server-cursor (look up T-SQL-cursor-Anweisungen), je nach, was du tust mit jedem Schritt außerhalb des sproc.

Lange Abfragen sind in Ordnung, aber seien Sie vorsichtig, Aufruf von web-Seiten Asp.Net ist nicht wirklich optimiert für lange wartet und einige verbindungen werden ausgeschnitten.

Andere Tipps

Ein wenig mehr info über die Verbindungs-pooling-Ding...Sie verwenden es, bereits mit SqlClient, aber nur, wenn Ihre Verbindungszeichenfolge ist identisch für jede neue Verbindung, die Sie öffnen.Mein Verständnis ist, dass der Rahmen wird pool-Anschlüsse automatisch, wenn Sie es können, aber wenn Sie die Verbindungszeichenfolge variiert auch leicht von einem Anschluss zum nächsten, dann wird die neue Verbindung wird nicht vom pool aus - es wird neu erstellt (es ist teurer).

Sie können der Performance Monitor app mit Windows XP/Vista zu beobachten, SQL-verbindungen, und Sie sehen ziemlich schnell, ob oder nicht-pooling verwendet wird.Schauen Sie unter ".NET CLR Data" Kategorie" Performance Monitor.

Ich, die zweite Keith;wenn Sie den Aufruf einer gespeicherten Prozedur 30.000 mal, Sie haben weit größere Probleme als Verbindungs-pooling.

Deine Frage wurde teilweise beantwortet, indem dieser thread.Eine Suche würde haben ergeben, dass dies..Die definition des Verbindungs-Pooling, von denen eine Google würde beantwortet haben, mit dem ersten Treffer wird diese..

Das verlassen würde nur die best practices, die ich denke, wäre eine gute Frage :)

+1 Keith ' s Antwort.Er trifft den Nagel auf den Kopf.

Nur eine höfliche Erinnerung aus der FAQ:

Sie haben das internet durchsucht, bevor Fragen Sie Ihre Frage, und Sie kommen, um us-Streitkräfte mit der Forschung und Informationen zu Ihrer Frage ...Recht?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top