Nie, odpowiedzią na moje drugie pytanie nie jest zima.
Przedmowa:
Ostatnio dużo badałem Entity Framework i coś, co mnie niepokoi, to jego wydajność, gdy zapytania nie są rozgrzane, tak zwane zimne zapytania.
Zapoznałem się z artykułem dotyczącym wydajności dla Entity Framework 5.0. Autorzy przedstawili koncepcję zapytań Warm and Cold i ich różnice, co również zauważyłem, nie wiedząc o ich istnieniu. W tym miejscu chyba warto wspomnieć, że mam za plecami zaledwie pół roku doświadczenia.
Teraz wiem, jakie tematy mogę dodatkowo zbadać, jeśli chcę lepiej zrozumieć ramy pod kątem wydajności. Niestety większość informacji w Internecie jest nieaktualna lub nadęta z subiektywnością, stąd nie mogę znaleźć żadnych dodatkowych informacji na temat zapytań Warm vs Cold .
Zasadniczo zauważyłem do tej pory, że za każdym razem, gdy muszę ponownie skompilować lub odzyskać trafienia, moje początkowe zapytania stają się bardzo wolne. Każdy kolejny odczyt danych jest szybki ( subiektywny ), zgodnie z oczekiwaniami.
Będziemy migrować do Windows Server 2012, IIS8 i SQL Server 2012 i jako Junior faktycznie zyskałem możliwość przetestowania ich przed resztą. Bardzo się cieszę, że wprowadzili moduł rozgrzewający, który przygotuje moją aplikację na to pierwsze żądanie. Jednak nie jestem pewien, jak kontynuować rozgrzewanie mojego Entity Framework.
Co już wiem, warto zrobić:
- Wygeneruj moje widoki z wyprzedzeniem, zgodnie z sugestią.
- W końcu przenieś moje modele do oddzielnego zespołu.
To, co uważam za zrobienie, kierując się zdrowym rozsądkiem, prawdopodobnie jest złym podejściem :
- Wykonywanie fikcyjnych odczytów danych podczas uruchamiania aplikacji w celu rozgrzania, wygenerowania i zweryfikowania modeli.
Pytania:
- Jakie byłoby najlepsze podejście do zapewnienia wysokiej dostępności w mojej Entity Framework w dowolnym momencie?
- W jakich przypadkach Entity Framework znów się „stygnie”? (Rekompilacja, recykling, ponowne uruchomienie usług IIS itp.)