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 :

Parallelisation de requetes - connexion pool


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Parallelisation de requetes - connexion pool
    Bonjour,

    Je suis entrain de travailler sur un batch qui aura à gérér une volumétrie importante.
    Je cherche donc à paralléliser mes requetes d'extraction ( une seule requete ).


    1/ Merci de me fournir des exemples ou des liens expliquant comment l'implémenter.

    2/ Je voudrais aussi savoir si une connection pool permet de paralleliser automatiquement les requêtes ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    1) faudra etre plus précis dans ce que tu veux, c'est vague là

    2) le connection pool sert quand tu as besoin de beaucoup de connections de courte durée (typiquement une application web qui en a besoin pour répondre aux utilisateurs) à éviter la perte de temps et de ressources qu'implique une déconnection / connection au serveur DB, on réutilise les connection entre les requetes (après les voir bien nettoyées )

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    2/ Je dispose d'une liste de codes associés à des portefeuilles, ils sont stockés dans un premier resultSet .
    Je dois aller récupérer dans une Méga Table toutes les lignes (positions) relatives à ces portefeuilles en faisant une jointure sur ce code.
    Si je traite séquentiellement les codes un après l'autre le traitement nécéssiterait entre 1h et 1h30 de temps.

    J'envisage de paralléliser le traitement en autorisant l'exécution de plusieurs requetes à la fois. mais je ne sais pas vraimment comment m'y prendre.
    devrais je peut etre passer par du Multithreading ?

    2/ devrais je considérer que le passage par un connection pool ne servirait à rien ( mes requetes sont de longue durée relativement ).

    merci pour votre retour,

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    ton bottleneck semblant etre la base de donnée paralléliser ne ferais que rajouter des éventuels effets de bord indésirable, lié à l'utilisation de transactions différentes. Si t'es aussi lent (1h) juste poru rappatrier les données, soit tu rappatrie beaucoup trop et c'est le réseau qui est ton bottleneck, soit tu met le serveur de base de donnée à genoux et c'est lui le bottleneck. La première chose à faire, c'est de revoir ta requete pour l'optimiser, rajouter des index dans tes table sur les critère de jointure et t'assurer que les tables ne sont pas faites n'importe comment (je m'inquiète quand on parle de megatable).

    Avoir besoin de 1h pour une transaction SQL, c'est anormal.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CastorJoyeux Voir le message
    Avoir besoin de 1h pour une transaction SQL, c'est anormal.
    Dans l'absolu non, mais en interactif oui, c'est clair...

    Comme CastorJoyeux, je pense qu'un axe de recherche consiste à vérifier/créer les indexes qu'il faut pour ta jointure.
    Peut-être l'organisation de tes données n'est elle pas assez aboutie.
    Il faut peut-être également revoir l'algorithme mais là, on n'a pas assez d'indications...

    Ce qui me paraît certain, c'est que le pool de connexion ne te sera d'aucune aide...

Discussions similaires

  1. Connexion pool Tomcat
    Par manueld dans le forum Struts 1
    Réponses: 1
    Dernier message: 26/04/2012, 10h45
  2. Déploiement Grails et Glassfish connexion Pool
    Par macumba dans le forum Grails
    Réponses: 2
    Dernier message: 24/06/2011, 16h38
  3. Connexion pool à une base de données Oracle
    Par karami dans le forum JDBC
    Réponses: 5
    Dernier message: 08/11/2007, 15h17
  4. Réponses: 8
    Dernier message: 22/08/2007, 14h33
  5. Pb de connexions "Pool exhausted"
    Par Sherkhan dans le forum JDBC
    Réponses: 5
    Dernier message: 09/04/2005, 09h54

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