Pourquoi est-Entity Framework .ToList ().Très lent et comment puis-je accélérer?

Je suis l'interrogation d'une base de données oracle avec EF4.

J'ai 2 tables POINTS (avec près de 100 000 lignes) et COUNTRIES, chaque point ayant une countryCode comme clé étrangère

J'ai les 2 méthodes ci-dessous dans un référentiel

public List<PointsTable> GetAll()
{
    using (Entities context = new Entities())
    {
        List<PointsTable> theList = context.POINTS_TABLE.ToList();
        return theList;
    }
}

public List<PointsTable> GetAllComplete()
{
    using (Entities context = new Entities())
    {
        List<PointsTable> theList = context.POINTS_TABLE.Include("Countries").ToList();
        return theList;
    }
}

La GetAll prend que 5 secondes, mais le GetAllComplete prend 2 minutes!

J'ai l'aide de AsParallel() mais le gain est ridicule.

Puis-je accélérer les choses, ou ce qui est à l'origine pour être lent?

GetAllComplete est de faire la jointure avec le Pays de table et de récupérer tous les points et tous les pays, quand GetAll est juste en train de tous les points sans tables de référence. GetAllComplete devient de plus en plus de lignes. L'extraction de tous les éléments avec ToList() n'est pas une bonne idée lors de l'exploitation des big data.
Mais je suis complètement perdu ici, si je l'exécute en PL/SQL, je n'ai pas de différence entre les 2 ci-dessous requêtes: select * from POINTS_TABLE et select * from POINTS_TABLE a left join COUNTRY_TABLE b on B.CountryCode = A.CountryCode
c'est EF pas de sql, ORM sont beaucoup plus lents que les clients sql, si vous avez vraiment besoin de récupérer 200k lignes à la fois, utilisez ado.net pas de EF. Mais je préfère utiliser linq et fetch ligne par ligne, ou dans 100 points de packs.
sur votre explication de GetAll "est juste en train de tous les points sans tables de référence", mais je peux voir tous les graphique au cours de débogage rapide de montres. Donc, est-ce en raison de la fonctionnalité de débogage pour parcourir dans son ensemble graphique?

OriginalL'auteur DonQi | 2013-10-30