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

VB.NET Discussion :

Charger des millions de lignes dans un GridView


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Charger des millions de lignes dans un GridView
    Bonjour,

    J'ai développé une application en VB.NET qui charge dynamiquement plusieurs tables (oracle) au choix, mon application tourne bien sauf si j'essaye de charger une table d'un grand volume (plus d'un million de lignes) dans ce cas mon application plante.

    Ma question: J'aimerai savoir combien de ligne peut supporter un GridView?
    et qu'elle solution à ce genre de problème?

    Merci d'avance.

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par jarmoud Voir le message
    Bonjour,

    J'ai développé une application en VB.NET qui charge dynamiquement plusieurs tables (oracle) au choix, mon application tourne bien sauf si j'essaye de charger une table d'un grand volume (plus d'un million de lignes) dans ce cas mon application plante.

    Ma question: J'aimerai savoir combien de ligne peut supporter un GridView?
    et qu'elle solution à ce genre de problème?

    Merci d'avance.
    Personne ne sait le faire? donc c'est une limitation du .NET... vivement le PHP!

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    euh... tout de même... c'est peu constructif, tu veux des aprioris ?

    PHP: 1millions de lignes ? à remonter ? aucune chance, pour un projet pro j'ai été limité à 450 000 maxi sinon j'avais une superbe erreur laconique sans aucun rapport avec le vrai problème qui est que PHP alloue maximum (paramètre non modifiable) 16Mo de mémoire max a son interface de gestion DB... super !

    Avant de parler du nombre de lignes, soit plus explicite sur ton problème... je sais pas moi, montre voir un exemple de SQL de table où tu as 1 millions de lignes... il ne t'est pas venu à l'esprit que ce pouvait etre un problème de mémoire, ou la façon dont ton code accède à la base pour recouvrer et afficher les données ?
    En effet, tout dépend comment tu fait ton traitement php et comment tu gère ton traitement sous dotnet...
    Il n'y a absolument rien que php sache faire que dotnet ne puisse faire/reproduire (en plus rapide en plus), mais la méthode n'est pas la même, et les contraintes non plus.

    Alors ces jugements à l'emporte pièce parce que personne n'a répondu à ta question... garde les pour toi... il y a 1000 fois plus de restriction dans php que dans dotnet... tout est affaire de développement.
    Il se peut que le composant choisi ne soit pas celui qu'il te faut, ou qu'il soit utilisé de la mauvaise façon, montre voir aussi ton code pour remplir cette view...

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Utilité de remonter 1 million de lignes -> totalement nul!

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Utilité de remonter 1 million de lignes -> totalement nul!
    Ca tu n'en sais rien, tout est affaire de problématique et surtout de l'environnement qui va derrière, si c'est pour de l'ASP.NET et donc du web, on est assez d'accord, mais dans l'absolu ca n'a rien de nul de remonter 1 millions de lignes de la base, si tu leur applique un traitement pour faire des recoupements, des consolidations ... enfin bref un traitement quoi.

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par cinemania Voir le message
    Ca tu n'en sais rien, tout est affaire de problématique et surtout de l'environnement qui va derrière, si c'est pour de l'ASP.NET et donc du web, on est assez d'accord, mais dans l'absolu ca n'a rien de nul de remonter 1 millions de lignes de la base, si tu leur applique un traitement pour faire des recoupements, des consolidations ... enfin bref un traitement quoi.
    Certes, mais la je parlais de remonter 1 millions de ligne dans une gridview. J'ose espèrer que personne ne fait un affichage d'un million de ligne dans sa UI...

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Ba personnellement ca me viendrais pas à l'idée, mais qui sais, certains saugrenues ont déjà dit y penser... même si ca n'a aucun sens.

    en revanche si la gridview n'est pas utilisée de façon visuelle mais juste pour l'organisation des données qu'elle peut offrir, j'ai déjà vu des cas où (même si on est d'accord c'est horrible) il y avait de telles inepsies.

    c'est vraie qu'on peut se demander qu'elle est la pertinence de remonter 1 000 000 de lignes d'une DB sans aucun traitement spécifique et consolidations/regroupements au préalable... mais bon peut être que son besoin impose de telles extrêmités... qui sais... un reporting financier sur 50 ans ? lol

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci de m'avoir répondu, je pense que je me suis mal exprimé, je m'explique:

    - Je doit charger une table de quelques millions de lignes (justement pour un reporting financier de quelques années) je ne dit pas que je doit charger 1 million de lignes par pages! au contraire je limite mon utilisateur à 100 lignes par page au maximum et 10 lignes/pages au min.

    - Pourquoi ai-je parlé du PHP? parce que c'est vraiment du dynamique (d'ailleurs je ne compare pas PHP à ASP car c'est la même chose mais plutôt PHP/JAVASCRIPT à VB.NET) il se trouve que je me trompe dans mes propos car j'ai beaucoup développé en PHP et moins en VB.NET.

    - Aussi je ne parle pas de la mémoire car ce que je vois comme solution n'est pas le faite d'extraire 1 million de lignes d'un coup mais y a-t-il une manière de limité le nombre de lignes extraites par exemple pour pouvoir charger la table par tranche. Vous aller certainement me proposer de modifier ma requête: je suis sous Oracle la fonction limite n'existe pas, il y a le fameux rownum < N sauf que ceci n'a pas fonctionné, vous connaissez peut-être autre manière de faire ce genre de requête? toute proposition est la bienvenue.

    Merci de votre aide.

  9. #9
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    à part faire fonctionner le rownum... c'est difficile...

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par oyigit Voir le message
    à part faire fonctionner le rownum... c'est difficile...
    J'ai réussi à faire fonctionner le rownum, mais le nombre de lignes que je peux récupérer est très limité et le temps d'attente est énorme, en plus l'utilisateur doit pouvoir faire des tris sur la table, je ne veux pas le restreindre à quelques milliers de lignes... bref

  11. #11
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    J'ai pas compris la comparaison php/javascript avec vb.net... Les trois languages n'ont rien à voir.

    Sinon pour répondre à ton problème, la solution vient effectivement du rownum. Cela serait une erreur de conception grave que de fetcher toutes les lignes pour faire du paging dans ton code métier!
    Rownum a un fonctionnement particuliers, différent des LIMIT de MySQL et TOP de SQL Server, il faut apprendre à se servir d'oracle pour l'utiliser à bon escient. Apprends à t'en servir, consulte la FAQ developpez.com il y'a un paragraphe dessus, vois un DBA.
    Je pense que si sous oracle tu as des temps d'attente énorme (de quel ordre?) alors c'est que tu as des problèmes de conception dans ta base. Fais des plans d'execution, pose des indexs, vérifie les statistiques, pose des hints.
    La base de quelque téras sur laquelle je travaille fonctionne au poil pour peu que la requête soit correctement construite.

  12. #12
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Ta requête SQL n'est peut être pas optimisé. A tu essayé d'executé la requête directement sur ton seveur. Histoire d'avoir une idée du délai de réponse de celle-ci.

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    La base sur laquelle je travaille est très optimisée, je sais très bien me servir d'oracle. J'ai eu une idée et je suis entrain de le développer. Merci pour vos éclaircissements.
    Juste pour votre info: je parle de php/javascript parce que j'ai développé en AJAX (PHP/JAVASCRIPT), J2EE et .NET, donc je ne compare pas ici les langages mais la manière de faire pour arriver au même résultat. Chaque "Méthode" a ses points forts et ses points faibles, je trouve que pour ce genre de problème PHP est pas mal et je peux me tromper ce n'est pas du tout le sujet de mon post.

  14. #14
    Bz
    Bz est déconnecté
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Points : 127
    Points
    127
    Par défaut
    pourquoi pas un LIMIT dans ta requete select ?
    pis une gestion de pages ?

  15. #15
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Parceque LIMIT n'existe pas sur Oracle?

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/03/2011, 15h05
  2. Réponses: 1
    Dernier message: 16/09/2007, 14h14
  3. Réponses: 7
    Dernier message: 13/11/2006, 12h12
  4. Réponses: 1
    Dernier message: 08/09/2006, 18h23
  5. Bug IE si je rajoute des sauts de lignes dans le CS
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 14/06/2006, 20h07

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