Bonjour tout le monde,
Je cherche le moyen d'optimiser une méthode qui prend beaucoup de temps. cette methode consigne dans trois tables des données d'un objet Erreur
voici la méthode :
voici comment sont construites mes tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public void Insert(Erreur E,String nom_fic) throws SQLException { //int index = getFreeIndex(); String requete = "insert into TL_LOGMSG(DATLOGMSG,HMSLOGMSG,NOMCLA,LIBSEV,LIBMSG,NOMXCP,NOMFCH) values('"+E.Date+"','"+E.Time+"','"+Pars(E.Class)+"','"+E.Level+"','"+Pars(E.Intitule)+"','"+Pars(E.theException)+"','"+ nom_fic +"')"; //System.out.println(requete); this.execute2(requete); int id = getIndex(); if(E.Pile!=null || !E.Pile.isEmpty()) { Iterator iter = E.Pile.iterator() ; int i=0; while (iter.hasNext()) { i++; this.execute2("insert into TL_LOGPILMTH(TK_LOGMSG,ODRPILMTH,PTHMTH)values("+id+","+i+",'"+Pars((String)iter.next())+"')"); } } if(E.Arg!=null || !E.Arg.isEmpty()) { Iterator iter = E.Arg.iterator() ; int i=0; while (iter.hasNext()) { String s = (String) iter.next(); String lib = s.substring(0,s.indexOf(":")); String valeur = s.substring(s.indexOf(":")+1,s.length()); requete = "insert into TL_LOGARG(TK_LOGMSG,LIBARG,VALARG)values("+id+",'"+Pars(lib)+"','"+Pars(valeur)+"')"; this.execute2(requete); } } }
Donc voila je me demandais si par exemple il serai plus judicieux et possible de faire une seule et unique requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 create table TL_LOGMSG( TK_LOGMSG INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO CACHE ), DATLOGMSG varchar(11), HMSLOGMSG varchar(13), NOMCLA varchar(100), LIBSEV varchar(30), LIBMSG varchar(400), NOMXCP varchar(600), NOMFCH varchar(256)); create table TL_LOGARG( TK_LOGMSG INTEGER, LIBARG varchar(100), VALARG varchar(100)); create table TL_LOGPILMTH( TK_LOGMSG INTEGER, ODRPILMTH Integer, PTHMTH varchar(700));
Aussi si je devrais revoir mes tables, la façon dont elles sont construites.
Sinon je sais que je ne suis pas dans le forum approprié mais ca m'aidera aussi : pensez vous que l'algorythme ( JAVA ) est correct ? Est il possible de faire plus concis et rapide ?
Merci
Partager