Frage

Bei der Entwicklung eine Anwendung (Web, gewinnen, was auch immer), die eine Menge von Datenzugriff des Fall ist, ist es besser, Ihr Datenzugriffsobjekt offen zu halten für die Dauer der Anforderung (dh viele Dinge tun, in einer Reihe, es dann schließen, wenn Sie fertig ist), oder halte Öffnung und neue zu schließen?

protected aDataContext dc = new aDataContext();

vs

private aObject GetInfo(...) {...}

Ich würde denken, die ehemalige für die Leistung besser wäre; aber es scheint wie eine schlechte Praxis.

War es hilfreich?

Lösung

Normalerweise sollten Sie eine neue Verbindung für jede Arbeitseinheit öffnen, sie verwenden und es dann so schnell wie möglich schließen. Intern .NET (oder ADO oder ODBC oder was auch immer) wird Zusammenfassen von Verbindungen für Sie, solange die Verbindungszeichenfolge das gleiche ist, deshalb ist es eigentlich sehr effizient. Es gibt noch andere Probleme zu berücksichtigen - insbesondere Transaktionen - aber im Allgemeinen ist es am besten, dieses Muster von Open-do-nah zu folgen und läßt .NET den Verbindungspool verwalten.

Andere Tipps

Besser einen Verbindungspool verwenden. hält eine begrenzte Anzahl von Verbindungen geöffnet, so viel wie möglich. Das Öffnen einer Verbindung ist teuer, aber mit Millionen offene Verbindung kann der Server töten. Sie sollten Benchmark Ihr Szenario für die besten Ergebnisse ....

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