W przypadku projektu obejmującego około 350 elementów w modelu encji EDMX, mój zespół przeżywa długie oczekiwanie, gdy nastąpi pierwsze zapytanie i gdy nastąpi pierwsze zapisanie.Jak poprawić wydajność uruchamiania dużego modelu Entity Framework 4.0?
Podczas profilowania prostego przypadku, który uruchamia kilka zapytań i zapisuje, prosty zestaw kroków służący do uruchomienia zapytania i zapisania zajmuje kilka minut.
Pierwsze zapytanie zajmuje 47% czasu ogólnego, tylko wywołanie metody ramowej, która wykonuje zapytanie.
Pierwsze zapisywanie zajmuje 50% całkowitego czasu w System.Data.Objects.ObjectContext.SaveChanges.
Czy są jakieś dobre opcje poprawy wydajności - może to być drenaż czasu rozwoju.
(Gdy system uderza produkcję, jest to denerwujące przy starcie, ale nie jest to problem w trakcie trwającej realizacji)
Dzięki! To działało dobrze. Skończyło się na tym, że użyłem genenowania szablonu T4 powiązanego z artykułem, do którego się odwołałeś. Zmniejszyło to moje początkowe zapytanie do mniej niż 5% pierwotnego czasu, a początkowe oszczędzanie w podobny sposób. Koszt czasu zostaje przesunięty do zapisu EDMX, ale ponieważ jest to operacja rzadsza, znaczny czas rozwoju jest zapisywany podczas uruchamiania debugowania. http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspx – BrianCooksey
Twój punkt widzenia na dzielenie modeli jest zrozumiały i docenione. Co ciekawe, poprzednio mieliśmy oddzielne modele, ale doszliśmy do wniosku, że jednolity model złagodzi pewne wyzwania, które wprowadziły oddzielne modele, i że w przypadku tego systemu korzyści przewyższają inne problemy. – BrianCooksey