Ich habe gerade angefangen LINQ auf einer täglichen Basis zu verwenden. Ich hätte eine ganze Menge über L2E Abfragen lesen Sie die folgenden kompiliert werden zur Verbesserung der Leistung mit:Sind LINQ zu Entitäten 4.0-Abfragen standardmäßig kompiliert?
CompiledQuery.Compile(query);
Mit LINQ-To-Entities 4.0 ich eine Abfrage 10 mal unkompilierten lief und dann kompiliert und ergab folgende Ergebnisse in Sekunden:
// Sample Query
from u in ctx.Users orderby u.Id, u.Username select u
Uncompiled Compiled
---------------------
0.295 0.2946174
0.024 0.0220462
0.008 0.0060126
0.013 0.0210441
0.007 0.010021
0.011 0.010021
0.008 0.0060126
0.009 0.0070147
0.008 0.0060126
Wie Sie sehen können, gibt es keinen wirklich großen Unterschied in den Zeiten von meinem kleinen Test. Es gibt eine langsamere Zeit für den ersten Anruf, und dann beschleunigen beide (was Kompilierung/Caching impliziert). Kann mir jemand Einblick geben?
Haben Sie dies vor einer Weile recherchiert und, afak (was definitiv nicht definitiv ist) war die Antwort nein. Wenn ich in der Lage wäre, eine definitive Antwort zu finden, würde ich es hier geben, aber gehe nicht davon aus, wenn niemand es tut. – Will
Was passiert also zum ersten Mal, wenn eine Anfrage ausgewertet wird? – TheCloudlessSky