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

SQL Oracle Discussion :

Optimisation du temps d'exécution


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut Optimisation du temps d'exécution
    salut,
    j'ai ecri un code en java dans lequel j'insere dans la base de donnée oracle 10g plusieurs enregistrement parfois il depasse 1000 instruction d'insert, mon systeme commence a augumenté son temps de reponse, parfois 4 min 3 min et plus...
    mon objectfis c'est que comment je peux le rendre un peu plus rapide??
    une methode qui peuvent lancer mes inserts un peu vite

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Tu ne peux pas regrouper tous tes INSERT en un seul ?
    Il vaut mieux faire 1 INSERT de 1000 lignes que 1000 INSERT de 1 ligne...

    Sinon, balance tes données au fur et à mesure dans des collections (TYPE TABLE), et à la fin tu fais un INSERT avec l'instruction FORALL :
    http://sheikyerbouti.developpez.com/...age=Chap5#L5.5

  3. #3
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Cela dépend aussi comment sont passées les requêtes...

    si tu formates et exécutes (parse/exec) la même requête 1000 fois c'est clair que c'est pas optimisé...

    J'espère que tu prépares ton appel une fois par un PreparedStatement et que ensuite tu bindes les valeurs et ne fais que que réexécuter le statement...

    De plus, l'Array interface est dispo en JDBC...

    Donnes nous plus d'infos !
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  4. #4
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Passes en mode BULK ça devrait dépoter

    Regardes cet article : http://www.oracle-base.com/articles/...ocessing9i.php

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Citation Envoyé par philcero Voir le message
    Passes en mode BULK ça devrait dépoter

    Regardes cet article : http://www.oracle-base.com/articles/...ocessing9i.php
    opensource a dit qu'il codait en JAVA , PAS en PL/SQL....
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    bjr,
    Merci pour les informations, comme c'est confirmé par vicenzo, je code avec java, juste selon la citation de dgi77
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sinon, balance tes données au fur et à mesure dans des collections (TYPE TABLE), et à la fin tu fais un INSERT avec l'instruction FORALL :
    je vais consulter le lien.
    mon code et le voila
    j'ai des boucles en java dans lesquelles je recupere mes valeurs et puis je vais une insert à chaque iteration .
    voila mon code meme si il est un peu long
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
        /** ===>>> Fonction de Calcul de la Valeur du Ratio **/
        private void mCalculer_actionPerformed(ActionEvent e) {
     
            String Modele = mModeleDesc.getText();
            String Date_debut = mDateDebut.getText();
            String Date_Fin = mDateFin.getText();
            String Requete_Insert = RequeteInsert_Data_Ratio;
            String Values = "";
            Vector V_Error = new Vector();
     
            /** Initialisation de table des Erreurs **/
            InitTableRatiosErronés();
            mModelRatioErronés.chargerVector(V_Error, vRatioErronesCols,vRatioErroneClasses);
     
            if( !Modele.equals("") && !Date_debut.equals("") && !Date_Fin.equals("") ) {
     
                /** Controle Des valeurs de dates   **/
                ControleDate(Date_debut, Date_Fin);         
                int Begin_Date = Integer.parseInt(Date_debut.split("/")[2]);
                int End_Date = Integer.parseInt(Date_Fin.split("/")[2]);
     
                /** Test Sur l'existance d'au moins un Ratio **/
                if( mTableRatioTraitement.getRowCount() >= 1 ){ 
     
                    /** ==>> Parcour de la Table des Ratios **/
                    for( int i = 0; i < mTableRatioTraitement.getRowCount(); i++ ){
     
                        if( mTableRatioTraitement.getValueAt(i,0) != null ) {
     
                              boolean Choix = (Boolean)mTableRatioTraitement.getValueAt(i,0);
     
                              /** Test sur la selection  d'un Ratio et l'existance d'une Societe **/
                              if( Choix == true && mTableSocieteTraitement.getRowCount() > 0 ){
                                     String Code_Ratio = mTableRatioTraitement.getValueAt(i,1).toString();
     
                                    /** ==>> Parcour de la Table Societe  **/
                                    for( int j = 0; j < mTableSocieteTraitement.getRowCount(); j++){
     
                                        if( mTableSocieteTraitement.getValueAt(j,0) != null && (Boolean)mTableSocieteTraitement.getValueAt(j,0) == true){
     
                                            String Societe = mTableSocieteTraitement.getValueAt(j,1).toString();
                                            String Formule_Ratio = GetFormule_Ratio(Code_Ratio,Modele);
                                            int k = 0;
                                            goTo_While : while((Begin_Date + k) <= End_Date ) { //===>>> Marge des Dates : Insertion pour les differentes dates
     
                                                int exist = IsTrouve_Ratio_Societe(Modele,Societe,Code_Ratio,Integer.toString((Begin_Date + k)));
     
                                                /** ==>>> le Ratio n'est pas Calculé pour la societe **/
                                                if( exist == 0 ) {  
     
                                                    Pattern pattern = Pattern.compile("("+Symbols+")|("+numbers+")|("+strings+")");
                                                    Matcher matcher = pattern.matcher(Formule_Ratio);
                                                    String Evaluer_Formule = "";
                                                    String Date_Ratio = String.valueOf(Begin_Date + k);  
                                                    double Valeur_Ratio = 0;
     
                                                   /**  ===>>> Parcour de la Formule   **/    
                                                    while ( matcher.find() ) { 
     
                                                       String Element = matcher.group();
                                                       String test_element = Element.trim().substring(0,1);
     
                                                       if( test_element.equals(":") ){
     
                                                              String val = GetValeur_Compte(Element.split(":")[1],Modele,Societe,Date_Ratio);
     
                                                              if ( val.equals("") ) {
                                                                Evaluer_Formule += "0.00";
                                                              } else {
                                                                  Evaluer_Formule += val;
                                                              }
     
                                                       } else {
                                                            Evaluer_Formule += Element;
                                                       }
                                                    }
     
                                                    /**  Bibliothèque du Calcul  **/                                           
                                                    Jep jep = new Jep();
                                                    try {
     
                                                          Requete_Insert = RequeteInsert_Data_Ratio;
                                                          Values = "";
                                                          jep.parse(Evaluer_Formule);
                                                          String valeur = jep.evaluate().toString();
     
                                                          /**  ===>>> Cas Erreur de calcul   **/                                         
                                                          if( valeur.trim().equals("Infinity") || valeur.trim().equals("NaN") ){ 
     
                                                              Vector v = new Vector();
                                                              v.add(Code_Ratio);v.add(Societe);v.add(valeur);v.add("31/12/" +(Begin_Date + k));
                                                              V_Error.add(v);
                                                              k++;
                                                              continue goTo_While;
     
                                                          } else {
                                                              Valeur_Ratio = Double.parseDouble(valeur);
                                                              Values = " VALUES ("+Modele+",'"+Code_Ratio.trim()+"','"+Societe.trim()+"',TO_DATE('31/12/"+Date_Ratio.trim()+"','dd/mm/yyyy') ,"+Valeur_Ratio+")";
                                                              Requete_Insert += Values;
                                                             // System.out.print("\n Requete_Insert " + Requete_Insert + "\n\n");
                         // Insertion dans la table                                     boolean ok = mDBaccess.execute_req_insert_update_con_commit(Requete_Insert);
                                                             // System.out.print("\n okokokok " + ok + "\n\n");
                                                          }  
                                                     }catch(JepException ex){
                                                        System.out.print( ex.toString() + "*****" + ex.getMessage() );  
                                                     }
                                                      k++;
                                              } else {
                                                  k++;
                                              }
     
                                          }// fin while  
                                       }
                                     } 
                                   }
                           }
                   }
                }
    Merci pour les informations

  7. #7
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Bon, je comprend pourquoi les perfs sont à la traine...

    Ton code effectivement est "anti-perf"...

    Tu utilises quel framework pour exécuter les requêtes ?

    En fait tu passes plus de temps dans tes loop java à faire du code métier qu'a mettre à jour la base.

    L'optimisation à mon avis est voir au niveau du code Java pur...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Le FORALL est le pendant du BULK COLLECT, pour passer les données d'une collection vers une table (le BULK COLLECT étant utilisé pour faire l'inverse), donc je ne sais pas si tu peux l'utiliser en JAVA ?

  9. #9
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    NAN, il peut pas.

    Il doit passer par son framework qui n'a surement pas les fonctionnalités PL/SQL citées.

    Son soucis est plus la lourdeur du code java et son algo de traitement que la pendant Oracle.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Effectivemment, il y a assez temps dans les boucles en faite, ce qui reflete sur le temps d'insertion pour le Bulk Binds, je pense qu'il s'utilise avec pl / sql selon la doc que j'ai consulté sur le lien.
    pour le framework, je sais pas en faite, je travail avec oracle 10g et sql navigator voila mes outils relatifs aux SGBD

  11. #11
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    concernant java, regarde du coté de la librairie (opensource de tête ) tgbatch (plus sur du tout du nom mais une recherche sous google devrait aider )

    Qui permet de faire des inserts massifs .. ( en gros tu prépares tes 1000 requetes avec ton code et tu fais 1 seul insert à la fin)


    Et sinon au niveau java toujours, vérifie :
    1/ si tous tes tests sont utiles
    2/ si les erreurs engendrées par le non respect de certains tests ne seraient pas plus rapide à traiter qu'à tester :
    ( genre : "l'erreur se produit en moyenne par 1 cas sur 10000.
    Pour chaque cas : tester = 1ms.
    En cas d'erreur : gérer l'erreur = 3 ms.
    donc 3 ms << 1ms * 10 000 " => il vaut mieux gérer l'erreur que la tester à chaque cas)
    3/ Vérifier que tes tests ne peuvent pas se faire hors des boucles où ils sont ( ou au moins à la boucle du dessus.)

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    j'ai pas tres bien compris la premiere partie de votre reponse, la deuxieme partie est une optimisation au niveau de code et gestion des erreurs qui seront produites et qui seront ajouter dans un jtable comme le montre le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                /** Remplissage de la table Errors **/
                mModelRatioErronés.chargerVector(V_Error,vRatioErronesCols,vRatioErroneClasses);
                mCommun14.formatTableRows(mTableRatioErronés);
                mTableRatioErronés.getColumnModel().getColumn(0).setPreferredWidth(250);
                mTableRatioErronés.getColumnModel().getColumn(1).setPreferredWidth(250);
                mTableRatioErronés.getColumnModel().getColumn(2).setPreferredWidth(200);
                mTableRatioErronés.getColumnModel().getColumn(3).setPreferredWidth(200);
    j'ai cherché sur google en indiquant le mot en question mais pas de resultat
    veuilliez m'expliquer un peu SVP les deux parties

  13. #13
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Un petite remarque. Plusieurs objets présentent une fonction getRowCount(). On ne connait pas leur nature, mais tester le retour de cette fonction à chaque tour de boucle est une infamie en terme de perfs. On ne sait pas ce que fait réellement cette fonction (qui peut être fait des computations à chaque appel, ...). Il faut mieux initialiser des variables avec la valeur des getRowcount() une seule fois...

    Des remarques comme ca, on peut encore en faire plusieurs sur ce bout de code.

    Je penses donc que pour réduire les lenteurs, il faut commencer par revoir ce code Java qui n'est pas optimisé du tout au lieu de se focaliser sur Oracle.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  14. #14
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Pareil sur GetFormule_Ratio(Code_Ratio,Modele); dans une boucle alors que les variables sont affectées avant la boucle.

    Tu peux tester le temps sans l'ordre d'insert.
    Tu peux aussi tester la somme des temps d'exécution de l'ordre INSERT.

  15. #15
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    la tranche de code est la suite de la fonction voila la fonction complete

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
        /** ===>>> Fonction de Calcul de la Valeur du Ratio **/
        private void mCalculer_actionPerformed(ActionEvent e) {
     
            String Modele = mModeleDesc.getText();
            String Date_debut = mDateDebut.getText();
            String Date_Fin = mDateFin.getText();
            String Requete_Insert = RequeteInsert_Data_Ratio;
            String Values = "";
            Vector V_Error = new Vector();
     
            /** Initialisation de table des Erreurs **/
            InitTableRatiosErronés();
            mModelRatioErronés.chargerVector(V_Error, vRatioErronesCols,vRatioErroneClasses);
     
            if( !Modele.equals("") && !Date_debut.equals("") && !Date_Fin.equals("") ) {
     
                /** Controle Des valeurs de dates   **/
                ControleDate(Date_debut, Date_Fin);         
                int Begin_Date = Integer.parseInt(Date_debut.split("/")[2]);
                int End_Date = Integer.parseInt(Date_Fin.split("/")[2]);
     
                /** Test Sur l'existance d'au moins un Ratio **/
                if( mTableRatioTraitement.getRowCount() >= 1 ){ 
     
                    /** ==>> Parcour de la Table des Ratios **/
                    for( int i = 0; i < mTableRatioTraitement.getRowCount(); i++ ){
     
                        if( mTableRatioTraitement.getValueAt(i,0) != null ) {
     
                              boolean Choix = (Boolean)mTableRatioTraitement.getValueAt(i,0);
     
                              /** Test sur la selection  d'un Ratio et l'existance d'une Societe **/
                              if( Choix == true && mTableSocieteTraitement.getRowCount() > 0 ){
                                     String Code_Ratio = mTableRatioTraitement.getValueAt(i,1).toString();
     
                                    /** ==>> Parcour de la Table Societe  **/
                                    for( int j = 0; j < mTableSocieteTraitement.getRowCount(); j++){
     
                                        if( mTableSocieteTraitement.getValueAt(j,0) != null && (Boolean)mTableSocieteTraitement.getValueAt(j,0) == true){
     
                                            String Societe = mTableSocieteTraitement.getValueAt(j,1).toString();
                                            String Formule_Ratio = GetFormule_Ratio(Code_Ratio,Modele);
                                            int k = 0;
                                            goTo_While : while((Begin_Date + k) <= End_Date ) { //===>>> Marge des Dates : Insertion pour les differentes dates
     
                                                int exist = IsTrouve_Ratio_Societe(Modele,Societe,Code_Ratio,Integer.toString((Begin_Date + k)));
     
                                                /** ==>>> le Ratio n'est pas Calculé pour la societe **/
                                                if( exist == 0 ) {  
     
                                                    Pattern pattern = Pattern.compile("("+Symbols+")|("+numbers+")|("+strings+")");
                                                    Matcher matcher = pattern.matcher(Formule_Ratio);
                                                    String Evaluer_Formule = "";
                                                    String Date_Ratio = String.valueOf(Begin_Date + k);  
                                                    double Valeur_Ratio = 0;
     
                                                   /**  ===>>> Parcour de la Formule   **/    
                                                    while ( matcher.find() ) { 
     
                                                       String Element = matcher.group();
                                                       String test_element = Element.trim().substring(0,1);
     
                                                       if( test_element.equals(":") ){
     
                                                              String val = GetValeur_Compte(Element.split(":")[1],Modele,Societe,Date_Ratio);
     
                                                              if ( val.equals("") ) {
                                                                Evaluer_Formule += "0.00";
                                                              } else {
                                                                  Evaluer_Formule += val;
                                                              }
     
                                                       } else {
                                                            Evaluer_Formule += Element;
                                                       }
                                                    }
     
                                                    /**  Bibliothèque du Calcul  **/                                           
                                                    Jep jep = new Jep();
                                                    try {
     
                                                          Requete_Insert = RequeteInsert_Data_Ratio;
                                                          Values = "";
                                                          jep.parse(Evaluer_Formule);
                                                          String valeur = jep.evaluate().toString();
     
                                                          /**  ===>>> Cas Erreur de calcul   **/                                         
                                                          if( valeur.trim().equals("Infinity") || valeur.trim().equals("NaN") ){ 
     
                                                              Vector v = new Vector();
                                                              v.add(Code_Ratio);v.add(Societe);v.add(valeur);v.add("31/12/" +(Begin_Date + k));
                                                              V_Error.add(v);
                                                              k++;
                                                              continue goTo_While;
     
                                                          } else {
                                                              Valeur_Ratio = Double.parseDouble(valeur);
                                                              Values = " VALUES ("+Modele+",'"+Code_Ratio.trim()+"','"+Societe.trim()+"',TO_DATE('31/12/"+Date_Ratio.trim()+"','dd/mm/yyyy') ,"+Valeur_Ratio+")";
                                                              Requete_Insert += Values;
                                                             // System.out.print("\n Requete_Insert " + Requete_Insert + "\n\n");
                                                              boolean ok = mDBaccess.execute_req_insert_update_con_commit(Requete_Insert);
                                                             // System.out.print("\n okokokok " + ok + "\n\n");
                                                          }  
                                                     }catch(JepException ex){
                                                        System.out.print( ex.toString() + "*****" + ex.getMessage() );  
                                                     }
                                                      k++;
                                              } else {
                                                  k++;
                                              }
     
                                          }// fin while  
                                       }
                                     } 
                                   }
                           }
                   }
                }
     
                /** Remplissage de la table Errors **/
                mModelRatioErronés.chargerVector(V_Error,vRatioErronesCols,vRatioErroneClasses);
                mCommun14.formatTableRows(mTableRatioErronés);
                mTableRatioErronés.getColumnModel().getColumn(0).setPreferredWidth(250);
                mTableRatioErronés.getColumnModel().getColumn(1).setPreferredWidth(250);
                mTableRatioErronés.getColumnModel().getColumn(2).setPreferredWidth(200);
                mTableRatioErronés.getColumnModel().getColumn(3).setPreferredWidth(200);
     
            } else {
                JOptionPane.showMessageDialog(this,"789");
                JOptionPane.showMessageDialog(this," Veuilliez Remplir Les Paramètres ","Avertissement",0);
            }
        }

  16. #16
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Encore une fois, ton soucis est plus un soucis Java que Oracle...

    Commence par prendre en compte nos remarques et ensuite vois dans les forums java concernés...

    De plus, tu as posté dans un forum SQL et PL/SQL et ton code ne présente aucun SQL ou PL/SQL...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  17. #17
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Merci mon probleme est resolu avec les threads en java
    Merci pour toutes les informations

  18. #18
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    le probleme est resolu avec les threads en java
    Merci pour les informations

  19. #19
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    pardon vicenzo, je senti de ton truc.

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

Discussions similaires

  1. optimisation en temps d'exécution d'un tri
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2008, 18h49
  2. [datenum] Optimiser le temps d'exécution
    Par xduris dans le forum MATLAB
    Réponses: 11
    Dernier message: 08/08/2007, 16h07
  3. Optimisation du temps d'exécution d'une requête
    Par LeNovice dans le forum DB2
    Réponses: 6
    Dernier message: 12/07/2007, 13h47
  4. optimiser le temps d'exécution de l'explorateur windows
    Par ben_iap dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 31/01/2006, 22h04
  5. Réponses: 9
    Dernier message: 20/06/2005, 12h17

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