5

Mam aplikację sieci web ASP.NET MVC 5 i używam EF 6.1, aby uzyskać dostęp do mojej bazy danych.
Mam dość skomplikowane zapytania LINQ, których skompilowanie zajmuje do 10 sekund, a następnie wykonanie w ciągu kilku milisekund. EF buforuje te zapytania w porządku, a przy drugim uruchomieniu zapytania zwraca się w ciągu tych kilku milisekund.
Ale ta pamięć podręczna nie jest zachowywana, więc przy każdym ponownym uruchomieniu aplikacji zapytanie musi zostać zrekompilowane, co zajmuje ponownie 10 sekund.Baza zapytań Persist Entity Framework

Czy istnieje sposób na utrzymanie tej pamięci podręcznej zapytań, aby przetrwał ponowne uruchomienie aplikacji?

+0

http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/ –

+0

Dzięki za link, ale ja już robić większość tego i nie obsługuje pamięci podręcznej zapytań, ale tylko buforowanie modelu ... – ChrFin

+1

Pamięć podręczna zapytań to słownik wewnątrz QueryCacheManager. Próbowałem zapisać go za pomocą refleksji, ale ponieważ QueryCacheKey i QueryCacheEntry nie są publiczne i nie są oznaczone jako Serializable, nie jest to możliwe. Zapisywanie/ładowanie bufora planu zapytań byłoby bardzo przydatną funkcją, więc powinieneś utworzyć problem na http://entityframework.codeplex.com/workitem/list/advanced –

Odpowiedz

0

można użyć skompilowane zapytania: see here lub here

Ale jak wspomniano here przedmiotem zapytania nie może wykraczać poza zakres. Możesz sobie z tym poradzić, przechowując go w pamięci podręcznej w sesji lub jako zmienną aplikacji.

+1

Przepraszamy, ale to nie pomoże, ponieważ podczas wykonywania mojej aplikacji są one już buforowane przez EF. Chcę to * zachować * tak, aby przetrwał restart aplikacji ... – ChrFin

+0

Możesz go skompilować podczas uruchamiania aplikacji w tle, aby był gotowy, gdy go użyjesz. Jeśli nie jest to możliwe, możesz serializować skompilowany obiekt zapytania do pliku i przywrócić go z tego miejsca. Dlatego tylko pierwsze użycie jest powolne. Można to jednak zrobić tylko za pomocą skompilowanych zapytań. – Vanice

Powiązane problemy