J'ai un problème de performances avec l'API. Il est dû à la récupération de données à partir de plusieurs tables comme ci-dessousProblème de performance dû à l'inclusion d'une instruction dans Entity Framework
Exemple:
Users.Include(x => x.UsersAdditionInfo)
.Include(x => x.UserRoles)
.Include(x => x.Location)
Note: chacune de ces tables contient près de (1,50,000) enregistrements sauf table emplacement.
J'ai utilisé des jointures au lieu de .Include
puis j'ai également fait face aux mêmes problèmes de performances.
Exemple:
from ub in users
join ua in UserAdditionalInfo on ub.Id equals ua.UserId
join ur in UserRoles on ub.Id equals ur.UserId
join urs in userRoles on ur.RoleId equals urs.Id
join l in Location on ub.LocationId equals l.Id
into leftLocation
from location in leftLocation.DefaultIfEmpty()
suggèrent Veuillez pour de meilleures façons alternatives de requêtes dans plusieurs tables
si le calcul de la requête n'est pas un problème (ce que je suppose ne l'est pas, bien qu'un nombre élevé d'inclusions puisse rendre le calcul de la requête assez lourd), alors vous devriez essayer de diminuer le nombre d'enregistrements retournés/nombre de requêtes effectivement exécutées. Que faites-vous avec ces IQueryables? – DevilSuichiro