Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2006, 09h34   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 64
Détails du profil
Informations personnelles :
Localisation : France, Territoire de Belfort (Franche Comté)

Informations forums :
Inscription : novembre 2006
Messages : 64
Points : 67
Points : 67
Par défaut Performance DB2 entre Linux et DB2

Bonjour,

J'ai des problèmes de performances de ma connexion DB2 par le driver JT400 sur mon Iseries Model 800 en V5R2.

J'ai une application Java qui tourne sur une machine Intel et la même application qui tourne sur une partition Linux de notre Iseries.
La différence de performance est d'environ 1 à 5 en faveur de la solution Intel.

Après vérification, il semble que cette différence vient de la connexion JT400 pour écrire dans mes tables DB2. Hors, c'est exactement le même application qui est déployé sur les 2 systèmes, et vers le même Iseries.

Je pense que le paramètrage du JT400 ne donne pas le même résultat quand il est installé sur notre partition Linux, mais IBM ne sait pas nous expliquer le pourquoi du comment.

Pour information, nous avons installé une redhat 3.3 avec un noyau Linux 2.4.
La version Apache est 2.0.47 et la version Tomcat 4.1.30.

Merci d'avance pour votre aide

Fred
fred_crrm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 15h54   #2
Membre du Club
 
Inscription : novembre 2006
Messages : 64
Détails du profil
Informations personnelles :
Localisation : France, Territoire de Belfort (Franche Comté)

Informations forums :
Inscription : novembre 2006
Messages : 64
Points : 67
Points : 67
Par défaut Complément d'informations

salut à tous,

Voici la réponse d'IBM pour répondre un temps soit peu à ma question :

Il faudrait grouper tous les enregistrement d'une commande pour traitement "global" en une seule opération. Pour y parvenir, il faut utiliser deux "statement" ou déclaratifs qui permettent d'optimiser les insert :
  • addBatch
  • executeBatch
Voir aussi : http://java.developpez.com/faq/jdbc/?page=transactions :
*****************************************************
Connection connection = ... ;
Statement statement = connection.createStatement();
if(connection.getMetaData().supportsBatchUpdates())
{
connection.setAutoCommit(false);
statement.clearBatch(); //on supprimme les anciens batch
statement.addBatch("INSERT ....");
statement.addBatch("UPDATE ...");
statement.addBatch("...");
int[] resultat = statement.executeBatch();
//voir les différents types de retour possibles
connection.commit();
connection.setAutoCommit(false);
}

****************************************

Cette technique permet de "grouper" les enregistrements à traiter.
fred_crrm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h37.


 
 
 
 
Partenaires

Hébergement Web