IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Lenteur recherche dans une table


Sujet :

Entity Framework

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Lenteur recherche dans une table
    Salut,

    Via Entity Framework, Linq, Mysql Connector et une table de 895 402 rows.

    Lors d'un simple appel linq:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var query = from p in db.view_cities where p.INDEXNAME == "BRETE" select p;
    Ce code doit me retourner: 3 lignes.
    On ne peux plus simple.

    Si je regarde le code SQL généré sur la base de donnée MySQL, cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    SELECT
    `Extent1`.`ID`,
    `Extent1`.`COUNTRYCODE`,
    `Extent1`.`ZIPCODE`,
    `Extent1`.`CITY`,
    `Extent1`.`STATE`,
    `Extent1`.`STATECODE`,
    `Extent1`.`ADMINISTATION`,
    `Extent1`.`INDEXNAME`
    FROM (SELECT
          `tbl_cities`.`ID`,
          `tbl_cities`.`COUNTRYCODE`,
          `tbl_cities`.`ZIPCODE`,
          `tbl_cities`.`CITY`,
          `tbl_cities`.`STATE`,
          `tbl_cities`.`STATECODE`,
          `tbl_cities`.`ADMINISTATION`,
          `tbl_cities`.`INDEXNAME`
          FROM `tbl_cities` AS `tbl_cities`) AS `Extent1`
     WHERE 'BRETE' = `Extent1`.`INDEXNAME`;
    avec un temps de 45,22 secs.

    Si je lance la requête, mais simplifiée, depuis un client Mysql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT
          `tbl_cities`.`ID`,
          `tbl_cities`.`COUNTRYCODE`,
          `tbl_cities`.`ZIPCODE`,
          `tbl_cities`.`CITY`,
          `tbl_cities`.`STATE`,
          `tbl_cities`.`STATECODE`,
          `tbl_cities`.`ADMINISTATION`,
          `tbl_cities`.`INDEXNAME`
          FROM `tbl_cities` 
          WHERE 'BRETE' = `tbl_cities`.`INDEXNAME`;
    0,09 secs.

    Quelqu'un a-t-il une explication, je suppose que j'ai raté quelque chose.

    Un grand merci pour vos informations,

    Daniel

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Si je ne passe pas par une vue, mais par la jointure.
    Le requête est bien plus rapide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from p in db.tbl_cities
                            join x in db.tbl_countries on p.COUNTRYCODE equals x.ISO
                            where p.INDEXNAME == "BRETE" select p;
    Cela est il identique avec SQL server ?

Discussions similaires

  1. [SQL] recherche dans une table
    Par H-bil dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/06/2006, 11h26
  2. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  3. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo