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

ASP.NET Discussion :

Datarelation & Large tables


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Par défaut Datarelation & Large tables
    Salut,

    J'ai une table qui contient environ 20000 enregistrements.
    Une autre avec laquelle je souhaite effectuer une relation pour obtenir les lignes relatives.
    Devoir charger la totalité des tables pour trouver les enregistrements me semble logique mais question performance, n'est il pas mieux quand on s'adresse à de grosses tables de passer par une jointure sql pour ne par remonter trop de données ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Il y a plusieurs manières de faire. La première déjà est d'utiliser la pagination dans une GridView (ton post étant dans le forum ASP.Net, je suppose que c'est ce que tu veux faire).

    Ensuite, dans ta requête tu peux soit faire une jointure entre tes deux tables pour renvoyer toutes les colonnes d'un coup. Soit mettre en place un système de Grid mère / Grid fille, où un clique sur une ligne de la Grid mère t'afficheras une Grid fille contenant les lignes de la table secondaire en relation avec celle-ci.

    En espérant t'avoir aidé.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Par défaut
    Merci pour la réponse.

    Le problème n'est pas dans l'affichage des données mais plutôt dans l'optimisation des requêtes.
    Charger 20000 records ainsi que 2 autres tables filles et sans doute plus lourd que d'utiliser une jointure.
    La datarelation a l'avantage d'être souple et paramétrable mais à partir de quel moment les performances se dégradent par rapport à une jointure...

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Justement, l'affichage des données impact la façon de les requêter. Est-il utile de requêter 20.000 records à la fois ? Vas-tu vraiment les afficher tous dans ta page ?

    A priori non, tu vas utiliser la pagination. Dans ce cas, un simple ObjectDataSource ou SQLDataSource pour alimenter la grille suffit. Tu pourras alors dans ta requête SQL effectuer la jointure sur toutes les tables que tu veux.

    Sinon, précise un peu plus ce que tu obtenir afin qu'on puisse mieux te répondre.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Par défaut
    je n'affiche même pas les enregs. J'ai une table d'une dizaine d'IDs avec lesquels je veux retrouver les noms correspondants parmi les 20000 records.
    Ca marche bien via les datarelations, c'est pas le problème mais je me posais la question : jointure ou datarelation ?

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Si tu n'affiches pas les enregistrements et qu'il s'agit juste d'un question sur la meilleur manière de procéder à un requête sur plusieurs tables, ton messages ne devrait pas se trouver dans la section ASP.Net.

    Ensuite, une requête SQL sera toujours plus performante que de charger toutes les données.

    Un simple select, sur une dizaine d'ID, et dans une table de 20.000 records, cela devrait être assez rapide.

    Je t'invite à poster ce genre de question dans la partie C# ou SQL. Tu peux toujours décrire les tables utilisées, ainsi que le index définis et présenter ta requête afin qu'on te propose des optimisations.

    En espérant t'avoir aidé

  7. #7
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Par défaut
    Ce n'est pas hors sujet asp.net puisque c'est du vb web asp.net
    Certes c'est précisemment ado.net.
    Les datarelations c'est du .net webform ou winform
    Si je pose ma question sur le forum sql et que je parle de datarelation, certains vont me dire que c'est du .net et que je suis hors sujet.

    merci tout de même

Discussions similaires

  1. [MariaDB] large table (100M) & primary key
    Par Kaoutchou dans le forum Administration
    Réponses: 4
    Dernier message: 02/05/2013, 09h03
  2. [HTML 4.0] Fixer une largeur de colonne dans une table très large
    Par Poulpynette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 11/03/2009, 11h02
  3. [Tableaux] Comment gérer les tables trop larges ?
    Par Aramis dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 8
    Dernier message: 07/08/2007, 18h21
  4. [VB.NET] Binding et DataRelation Vers la table parente
    Par TSalm dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/07/2006, 09h40
  5. update large table et verrous
    Par pascalste dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/07/2005, 09h42

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