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 :

rs.next() + rs.getString assez lent


Sujet :

JDBC Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut rs.next() + rs.getString assez lent
    Bonjour,

    Je travaille sur DB2 en JDBC. J'ai 8 colonnes à récupérer sur 150 000 enregistrements :

    - Je boucle sur le result set et insere par paquet de 500 dans un fichier CSV.

    - La requete a été optimisée par un DBA et met environ deux secondes.

    La Récuperation et l'insertion dans le fichier mettent environ 20mn. En utilisant un outil de profiling je m'appercois que c'est environ 60 % du temps dans le rs.next() et 20 % du temps avec le rs.getString() (en passant par le numero de la colonne et plus le nom, ce qui m'a fait deja gagner 5 mn). Le reste du temps reste dans le traitement java.

    J'aimerai savoir si il existe une technique particulière pour optimiser le resultset et gagner un maximum de temps ?

    Je vous remercie d'avance.

  2. #2
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    Salut !

    la table est-elle bien indexée sur les colonnes en question ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    La table n'est pas indexé sur toutes les colonnes mais sur les colonnes qui servent de jointures avec toutes les autres tables.

  4. #4
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Au delà de la requête SQL qui semble avoir été exécutée rapidement (merci le DBA probablement), tu as maintenant un gros volume de données à faire transiter entre la BDD et ton programme Java. Je pense que c'est le transfert de ce volume qui plombe tes performances. Regarde le problème d'un point de vue réseau : débit et latence. Pour le débit pas de miracle, mais pour la latence, tu peux augmenter le fetchSize pour qu'a chaque opération, plusieurs lignes soient récupérées en une seule opération, diminuant ainsi le nombre d'allers/retour avec la BDD et compensant un peu des problèmes de latence.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    Tu as raison, le réseau est tres lent sur mon pc. En essayant sur un autre PC je passe de 20 mn à 3 mn.

    Je te remercie.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/01/2013, 21h06
  2. Réseau mixte XP - 7 assez lent
    Par sebaaas dans le forum Windows 7
    Réponses: 1
    Dernier message: 15/10/2011, 16h52
  3. Requête assez lente, besoin d'optimisation
    Par Marco94 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/02/2011, 15h48
  4. cryptage assez lent
    Par rours dans le forum C#
    Réponses: 9
    Dernier message: 02/09/2009, 16h28
  5. ResultSet (rs.next() ) trop trop lent
    Par bugmenot dans le forum JDBC
    Réponses: 4
    Dernier message: 15/06/2007, 15h04

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