Question

IQueryable<WebEvent> mySearch = 
    eventDC.GetBooks()
        .Where(p => p.Price.Any(d => d.EventDatetime.Month == fromDate.Month 
                                     && d.EventDatetime.Year == fromDate.Year))
        .WithGroup(groupId)
        .OrderBy(p => p.Price.Where(r => r.Datetime >= fromDate)
                             .OrderBy(q => q.Datetime)
                             .FirstOrDefault().Datetime);
List<Book>ventsList = mySearch.ToList<Book>();

Nous avons une requête longue, et il consomme beaucoup de temps pour les livres et le tri, après le test de performance, nous avons trouvé le temps de réponse pour la page qui contient cette requête dépasse 10 secondes, et nous devons chercher à résoudre ce et réduire le temps de réponse.

Avez-ce que quelqu'un a des suggestions?

Était-ce utile?

La solution

En général examiner SQL pour voir ce qu'il est la production, que vous pouvez faire en ligne. Il y a un outil qui peut vous aider à le faire, on l'appelle LINQPad, et vous pouvez créer une requête LINQ et jouer avec peaufinage la requête LINQ. En outre, la recherche d'endroits pour ajouter des index; cela peut accélérer trop performances (trop d'indices peut nuire à la performance alors faites attention aussi).

Autres conseils

Qu'est-ce que vous essayez de faire exactement? Pouvez-vous me donner une idée du schéma ici?

Cela me semble une déclaration bizarre puisque je ne sais pas le schéma:

  

p => p.Price.Any (d => d.EventDatetime.Month ...

Cependant, je vais prendre un coup de feu dans l'obscurité ici et dire que vous pourriez avoir un problème avec:

  

eventDC.GetBooks ()

si cette méthode appelle une procédure stockée ou ne un « Select * From Livres » sur la base de données, alors ce que vous êtes en train de faire est:

  1. Sélection de tous les livres de la DB
  2. Prendre la liste de résultats et en sélectionnant uniquement les livres que vous voulez en tirer

Si tel est le cas, alors c'est probablement votre plus gros problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top