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 :

Insertion multiple en base de données et performance


Sujet :

JDBC Java

  1. #1
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut Insertion multiple en base de données et performance
    Bonjour,

    Je dois insérer dans une base Oracle 250 000 lignes.
    J'ai fais un bout de code qui utilise des Prepared Statement et cela fonctionne mais c'est beaucoup trop long (environ 20 minutes).

    Le principe est le suivant :

    Je crée un Prepared Statement. Je set les valeurs à insérer, je l'exécute puis je set les valeurs de la ligne suivante, j'exécute et ainsi de suite jusqu'à ce que tout soit fini.

    Y aurait-il un moyen d'optimiser les insertions avec les Prepared Statement ou en utilisant autre chose?

    Bref, comment faite vous pour insérer beaucoup de lignes sans avoir de problème de perf?

    Merci.

  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
    a ma connaissance la manière la plus performante en jdbc pour l'insertion est d'utiliser les preparedStatement en mode batch.

    Je te conseille de faire des batchs pas trop énormes (genre 5000 lignes) et de commiter entre chaque batch.

  3. #3
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Super ça marche.
    Merci beaucoup.

    A+

  4. #4
    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
    Juste pour info ... combien de temps as tu gagné ?

  5. #5
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Salut,
    C'est difficile à dire.

    J'ai fais d'autres modifications ailleurs que dans la partie d'insertion en base, dans des bouts de code qui, indirectement, impactaient les perfs.

    Mais finalement je suis passé d'environ 20 minutes à prêt de 1 minute.

    C'est énorme, et j'en suis plutôt content. La plus grosse progression étant évidement dans la partie insertion en base.
    Merci encore.

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

Discussions similaires

  1. [SQL] Insertion multiple dans base de donnée
    Par leroidje dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/08/2007, 13h24
  2. [paradox7] Problème d'insertion dans la base de données
    Par mouna201 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/02/2006, 09h47
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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