Optimiser la requête de structure d'entité

Je suis en train de faire un stackoverflow clone de mon temps pour apprendre EF6 et MVC5, je suis actuellement à l'aide OWin pour l'authentification.

Tout fonctionne bien lorsque j'ai comme 50-60 questions, j'ai utilisé Porte rouge générateur de données et essayer de montée en puissance jusqu'à 1 million de questions avec un couple de milliers d'enfants lignes de la table sans relation juste pour le "stress" de l'ORM un peu. Voici comment le linq ressemble

var query = ctx.Questions
               .AsNoTracking()     //read-only performance boost.. http://visualstudiomagazine.com/articles/2010/06/24/five-tips-linq-to-sql.aspx
               .Include("Attachments")                                
               .Include("Location")
               .Include("CreatedBy") //IdentityUser
               .Include("Tags")
               .Include("Upvotes")
               .Include("Upvotes.CreatedBy")
               .Include("Downvotes")
               .Include("Downvotes.CreatedBy")
               .AsQueryable();

if (string.IsNullOrEmpty(sort)) //default
{
    query = query.OrderByDescending(x => x.CreatedDate);
}
else
{
    sort = sort.ToLower();
    if (sort == "latest")
    {
        query = query.OrderByDescending(x => x.CreatedDate);
    }
    else if (sort == "popular")
    {
        //most viewed
        query = query.OrderByDescending(x => x.ViewCount);
    }
}

var complaints = query.Skip(skipCount)
                      .Take(pageSize)
                      .ToList(); //makes an evaluation..

Inutile de dire que je suis SQL délais d'attente et après l'installation de Miniprofileret de regarder l'instruction sql générée, c'est une monstrueuse de quelques centaines de lignes de long.

Je sais que je suis de se joindre à/y compris trop de tables, mais comment de nombreux projets dans la vie réelle, nous n'avons qu'à joindre 1 ou 2 tables? Il pourrait y avoir des situations où nous devons le faire de nombreuses jointures avec des multi-millions de lignes, va procédures stockées le seul moyen?

Si c'est le cas, serait EF-être lui-même ne convient que pour les petits projets?

source d'informationauteur Lee Gary