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

JDBC Java Discussion :

base de donnée tres grande !


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 41
    Points
    41
    Par défaut base de donnée tres grande !
    Bonjour,
    j'ai fait une interface (en java) qui communique avec une base de donnée !
    Ma base de donnée (mysql) est un peu grande, et les requètes que j'effectu sur la base sont un peu lentes.
    Y a t il un moyen de crée une progressbar qui suit la progression de cette requete et comment faire un bouton qui peut annuler cette requete lors de son exécution.
    En plus, parfois j'ai des pb de mémoire: est-ce qu'on peut résoudre ce pb ??
    merci d'avance.

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par walou Voir le message
    Ma base de donnée (mysql) est un peu grande, et les requètes que j'effectu sur la base sont un peu lentes.
    Quelle est la taille approximative ?
    Ta base est distante ou locale ?
    As tu essayé d'optimiser tes requêtes ou d'utiliser des index par exemple ... ?

    Citation Envoyé par walou Voir le message
    Y a t il un moyen de crée une progressbar qui suit la progression de cette requete et comment faire un bouton qui peut annuler cette requete lors de son exécution.
    Oui mais une progress bar progresse au pif. C'est à toi de lui dire à combien elle en est dans sa progression. Donc pour une requete SQL c'est quasi impossible je pense d'avoir un truc correct. Tu peux toutefois faire une barre infinie pour que l'utilisateur sache que l'appli n'est pas bloquée.

    Quant à avoir un bouton d'annulation, il va falloir que tu utilise des threads pour faire ça à mon avis. Mais c'est tout à fait jouable

    Citation Envoyé par walou Voir le message
    En plus, parfois j'ai des pb de mémoire: est-ce qu'on peut résoudre ce pb ??
    merci d'avance.
    Ben oui sûrement mais on va pas pouvoir deviner d'où vient le problème sans plus d'explications ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    enfait ma base est de l'ordre de 60 000 lignes (et 5 colonnes);
    J'ai utilisé des index comme t'as suggéré : la requete est devenu un peu moins lente !
    Je suis encore un débutant en java, alors est-ce que tu peux m'expliquer les détails suivants :
    Comment faire assosié la progressBar (infinie) à la requete MySQL ?
    Et les threats : je ne sais pas comment les utilisé !!

    En attendant, je vais me documenter sur les "threats" ;
    a+

  4. #4
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    En fait, tu ne peux pas vraiment associé une progress bar à une requete.

    Quand tu envoies une requete, tu attends une reponse du serveur de base de donnée. Tu ne peux pas prévoir le temps de réponse à ta requete, donc tu ne peux pas faire une progress bar qui indiquera va donné une indiquation 'réaliste' du temps qu'il reste à attendre.

    Par contre, comme tu le suggères in, tu peux afficher, au moment où tu lances ta requete, une barre de défilement ( qui fait des aller/retour un peu à la K2000) pour signifier à ton utilisateur que l'application est n'est pas gelé mais qu'un travail est en cours dont le temps n'est pas défini.

    Pour les threads, va faire un tour sur la FAQ et les cours de ce site, il y a surement des choses très bien !

    Par ailleurs, tu peux regarder ce que tu peux faire pour optimiser ta requete ou voir même ton SGBD si tu as la possibilité de le faire. Une table de 60 000 enregistrements n'est pas si "grand" que ca.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    J'ai crée une progress bar infinie, mais lorsque je click sur le pb qui génère la requète, la progress bar se fige !!!! et ça donne l'air que le pb s'est planté !!

  6. #6
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Est ce que tu as lancer ta requete dans un thread ? Car sinon, ca risque de s'executer dans le thread de gestion graphique de swing et ca gèle l'affichage le temps de l'exeuction de ta requete. Quand tu as du code comme ca, tu l'executes pas directement, mais tu fais un thread qui l'execute.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    60000 lignes ce n'est pas grand et si c'est une bdd mono table encore moins pour mysql.
    Si tes rqte sont multitables fait des jointures.
    Si tu as de pb de mémoire et des lenteurs d'extraction vérifie que tu fermes ta connexion, statement et ressources car tout ce petit monde prend de la place et même si théoriquement la clôture est automatique, la mémoire n'est pas toujours restituée alors que si tu clôtures elle l'est.

Discussions similaires

  1. [AC-2007] Creation d'une tres grande base de données - solution viable ?
    Par bigfoot75 dans le forum Modélisation
    Réponses: 4
    Dernier message: 11/03/2010, 21h18
  2. Réponses: 1
    Dernier message: 08/08/2007, 13h19
  3. être ou ne pas être une base de données
    Par lapuce dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 27/09/2006, 17h15
  4. [ JSP ] Formulaire tres dynamique avec base de données.
    Par Dukedoom dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/06/2006, 09h19
  5. Réponses: 2
    Dernier message: 05/08/2005, 14h33

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