OVH Cloud OVH Cloud

insert batch avec JDBC ?

2 réponses
Avatar
S. MARSOLLE
J'ai une liste de 1000 objets en entrée d'une procédure Java chargé d'insérer
des lignes en base de donnée Oracle 9.2.
Pour chaque objet de ma liste, je fais un appel à une procédure stockée pour
insérer 1 ligne dans une table.
La procédure totale prend beaucoup trop de temps.

Est-il possible de transmettre à l'API JDBC un ordre de type "batch", avec la
référence à la procédure stockée SQL d'un côté et une table de données de
l'autres (mes 1000 objets) pour avoir de meilleurs performances ?

Faut-il faire du SQL dynamique ?

Nous utilisons le JDK 1.3.1 et migrons bientôt en 1.4.2.

--
Sébastien MARSOLLE

2 réponses

Avatar
Mouloud Samadi
Essaie addBatch() de java.sql.PreparedStatement et executeBatch() de
java.sql.Statement.
Je ne l'ai pas essayé mais cela devrait marcher, le gain de performances ne
sera pas fameux, tu parcours ta structure de données avec tes setters et à
chaque fois tu appelles addBatch(), à la fin tu appelles executeBatch(). Il
faut vérifier si le driver Oracle accepte cet appel Jette un coup d'oeil
sur le javadoc

"S. MARSOLLE" wrote in message
news:cic6pm$616$
J'ai une liste de 1000 objets en entrée d'une procédure Java chargé
d'insérer

des lignes en base de donnée Oracle 9.2.
Pour chaque objet de ma liste, je fais un appel à une procédure stockée
pour

insérer 1 ligne dans une table.
La procédure totale prend beaucoup trop de temps.

Est-il possible de transmettre à l'API JDBC un ordre de type "batch", avec
la

référence à la procédure stockée SQL d'un côté et une table de données de
l'autres (mes 1000 objets) pour avoir de meilleurs performances ?

Faut-il faire du SQL dynamique ?

Nous utilisons le JDK 1.3.1 et migrons bientôt en 1.4.2.

--
Sébastien MARSOLLE



Avatar
Braim
S. MARSOLLE wrote:
J'ai une liste de 1000 objets en entrée d'une procédure Java chargé d'insérer
des lignes en base de donnée Oracle 9.2.
Pour chaque objet de ma liste, je fais un appel à une procédure stockée pour
insérer 1 ligne dans une table.
La procédure totale prend beaucoup trop de temps.

Est-il possible de transmettre à l'API JDBC un ordre de type "batch", avec la
référence à la procédure stockée SQL d'un côté et une table de données de
l'autres (mes 1000 objets) pour avoir de meilleurs performances ?

Faut-il faire du SQL dynamique ?

Nous utilisons le JDK 1.3.1 et migrons bientôt en 1.4.2.

Pour tout tes problèmes avec JDBC, regarde la FAQ de developpez.com:

http://java.developpez.com/faq/jdbc/