Frage

Wie viel Datenbank-performance-overhead beteiligt ist, mit Hilfe von C# und LINQ im Vergleich zu benutzerdefinierten optimierte Abfragen geladen werden meist mit low-level-C, beide mit einer SQL Server 2008-backend?

Ich bin speziell zu denken ist hier ein Fall wo Sie haben eine sehr Daten-intensiv-Programm und tun eine Daten aktualisieren oder Aktualisierung mindestens einmal pro Bildschirm und wird mit 50 bis 100 gleichzeitige Benutzer.

War es hilfreich?

Lösung

In meiner Erfahrung der overhead ist minimal, vorausgesetzt, dass die person, die das schreiben der Abfragen weiß, was er/Sie tut, und nehmen Sie die üblichen Vorkehrungen, um die generierten Abfragen sind optimal, dass die erforderlichen Indizes vorhanden sind etc etc.In anderen Worten, die Datenbank Wirkung die gleiche sein sollte;es ist minimal, aber in der Regel vernachlässigbar overhead auf der app-Seite.

Sagte, dass...es gibt eine Ausnahme von dieser;wenn eine einzelne Abfrage generiert mehrere Aggregate der L2S-Anbieter übersetzt es in eine große Abfrage mit einer Unterabfrage pro Aggregat.Für eine große Tabelle, so kann eine erhebliche I/O-Auswirkungen wie die db-I/O-Kosten für die Abfrage wächst von Größen, die für jede neue Aggregat in der Abfrage.

Die Problemumgehung dafür ist natürlich, verschieben Sie die Aggregate, die gespeicherte Prozedur oder Sicht.Matt Warren hat einige Beispiel-code für eine alternative Abfrage Anbieter, die übersetzen, die Art der Abfragen in eine mehr effiziente Weg.

Ressourcen:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334211

http://blogs.msdn.com/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx

Andere Tipps

Dank Der Stu.Quintessenz scheint zu sein, dass LINQ to SQL vermutlich keine erheblichen Datenbank-performance-overhead mit den neueren Versionen, wenn Sie sind in der Lage zu verwenden, eine kompilierte auswählen, und die langsameren Funktionen zu aktualisieren, sind wahrscheinlich schneller sein, es sei denn, Sie haben eine WIRKLICH scharfe Experten tun die meisten der Codierung.

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