LINQ to SQL vs ADO.NET - was ist schneller?
Da LINQ to SQL ist im Grunde eine Schicht auf der Oberseite der ADO.NET es erfordert einige übersetzung. Bedeutet dies, dass die Verwendung ADO.NET direkt ist schneller als LINQ? Oder ist der Unterschied so klein, dass es irrelevant ist?
Hier sind einige benchmarks (ormbattle.net)
InformationsquelleAutor Herter | 2010-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es bedeutet, dass ADO.NET ist schneller. Es gibt auch haufenweise mehr Freiheit optimieren Sie Ihren SQL-Abfragen (auch technisch, Sie könnte verwenden von LINQ to SQL mit stored procedures nur, aber würden Sie verpassen auf den ganzen Punkt).
Tatsache ist, dass, wenn Sie wirklich, wirklich wirklich müssen, optimieren Sie für die beste Leistung, dann ist niemand wirklich empfiehlt die Verwendung von ein-ODER/M. Es gibt jede Menge überlegungen mit ODER/M:s, performance-wise. Aber eine Menge von Websites, die tun nicht wirklich brauchen, zu optimieren , dass viel für die Leistung, die in viel die gleiche Weise, die wir uns leisten können Programmieren .NETTO anstatt assembler, obwohl das ist die gleiche Art von overhead im Vergleich zum schreiben von code in einer niedrigeren Ebene der Sprache.
Den Punkt der Verwendung von LINQ-to-SQL und NHibernate, oder wirklich eine andere ODER eine/M, dass (wie bei der .NETTO-Analogie), es wird Ihnen eine ganze Menge Komfort, und es wird sparen Sie eine Menge Zeit in die Entwicklung, und stellen refactoring und anderen, späteren änderungen eine viel einfachere Aufgabe.
Ich möchte nur hinzufügen, eine kleinere Details: es gibt viele db-bewusst-Entwickler. Einige von Ihnen noch in SQL schreiben, und einige von Ihnen schreiben wirklich beschissen SQL. Einige ODER/Ms (z.B. L2S) ist eine Menge von query-Optimierung, bevor er die DB, so dass, obwohl Objekt Materialisierung etc. kann ein wenig Aufwand können Sie auch riesige DB-seitigen performance-Gewinne, wenn Sie db-bewusst-Entwickler in Ihrem team... JMHO.
InformationsquelleAutor David Hedlund
In der Ausführung ist es geringfügig langsamer. Jedoch, Linq to SQL spart dem Entwickler Zeit, die ist es, die wichtigsten Vorteil, IMHO.
Güte,
Dan
InformationsquelleAutor Daniel Elliott
Technisch, ja es ist ein gewisser Aufwand, und Linq2Sql erzeugen kann, die einige weniger optimale SQL-manchmal, aber wenn Sie tun, hohe Leistung und hoher Durchsatz arbeiten, sind Sie vermutlich kaum bemerken.
Mein Rat wäre, Holen die DA Technologie, die Ihren Anforderungen gerecht wird, die meisten und gehen mit ihm. Denken Sie daran, die Vorteile von Dingen wie Linq2SQL oder EF verringert sich Entwickler Zeit damit verbracht schreiben repetitive DA Lagen, und reduzierte code (also in der Theorie vielleicht reduziert Fehler und weniger Wartung - obwohl das fraglich ist). Dann Profil für die Leistung später und wenn Sie erkennen, eine Flasche Hals haben, können Sie starten die Optimierung einzelner Abfragen dann, wenn es absolut notwendig ist, sehr wichtig-Abfragen verursachen große Flaschenhälse umgewandelt werden können, um einfach nur ado.net
InformationsquelleAutor Simon P Stevens
Es ist wahr, dass LINQ to SQL ist eine Schicht auf der Oberseite der ADO.NET. Aber so sind andere Optionen, die Ihnen ermöglichen, halten Sie die Ergebnisse im Speicher. Wenn es Ihr Ziel ist, zu handeln auf die Daten sofort nach Abruf sind Sie besser dran mit zu arbeiten ADO.NET DataReader in einer Schleife für eine bessere Leistung. Allerdings, wenn Sie tun müssen, um die weitere Verarbeitung auf die Daten, die Sie benötigen, um in ihm das Gedächtnis über irgendeine Art von variable wie eine LINQ to SQL, Entity oder DataTable. Diese beiden Variablen sind im Grunde erzeugt die gleiche Weise unter der Decke. Angesichts dieser Tatsache, würde ich sagen, dass die Geschwindigkeit, von denen jede option ist verfügbar im Speicher ist nicht so importieren, wie Sie planen, auf die Arbeit mit den Daten.
InformationsquelleAutor Tom Brothers