Ich habe eine ASP.NET MVC 5 Web-Anwendung und verwenden EF 6.1, um auf meine DB zuzugreifen.
Ich habe einige ziemlich komplexe LINQ-Abfragen, die bis zu 10s dauern, um zu kompilieren, aber dann in wenigen Millisekunden auszuführen. EF speichert diese Abfragen in Ordnung, und wenn die Abfrage das zweite Mal ausgeführt wird, kehrt sie innerhalb dieser wenigen Millisekunden zurück.
Aber dieser Cache wird nicht beibehalten, also muss bei jedem App-Neustart die Abfrage neu kompiliert werden, was wiederum 10 Sekunden dauert.Persist Entity Framework Query Cache
Gibt es eine Möglichkeit, diesen Abfragecache persistent zu machen, damit er einen App-Neustart überlebt?
http://www.fusonic.net/de/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/ –
Danke für den Link, aber ich schon tun das meiste davon und es behandelt nicht den Abfrage-Cache, sondern nur Modell-Caching ... – ChrFin
Der Abfrage-Cache ist ein Dictionary innerhalb von QueryCacheManager. Ich habe versucht, es mit Reflektion zu speichern, aber da QueryCacheKey und QueryCacheEntry nicht öffentlich und nicht als serialisierbar markiert ist, ist es nicht möglich. Speichern/laden Abfrage Plan Cache wäre eine sehr hilfreiche Funktion zu haben, so sollten Sie ein Problem erstellen auf http://entityframework.codeplex.com/workitem/list/advanced –