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

Oracle Discussion :

createStatement() trop lent


Sujet :

Oracle

  1. #1
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut createStatement() trop lent
    Bonjour,
    J'aimerai savoir si c'est normal que le createStatement prenne 5seconde en moyenne à s'effectuer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Connection conn = dbScherzo.getJdbcConnection();
    Statement statement = conn.createStatement();
    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Est-ce que ce serais pas plutot le "getJdbcConnection()" qui prendrait du temps ?

  3. #3
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    En effet c'est ta méthode getJdbcConnection() qui prend beaucoup de temps.

    Le mieux que tu aies à faire c'est de créer un pool de connection.

    Ou alors si tu utilises une application standalone tu peux aussi laisser la connection ouverte tant que l'application n'est pas fermée.

    Voilà

  4. #4
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Je me suis poser la meme question, j'ai donc fait des traces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                Date d = new Date();
                System.out.println("  -->getJdbcConnection() " + d);
                Connection conn = dbScherzo.getJdbcConnection();
                d = new Date();
                System.out.println("  -->createStatement() " + d);
                Statement statement = conn.createStatement();
                d = new Date();
                System.out.println("  -->Fin createStatement()" + d);
    Ce qui me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      -->getJdbcConnection() Wed Aug 23 08:53:06 CEST 2006
      -->createStatement() Wed Aug 23 08:53:10 CEST 2006
      -->Fin createStatement()Wed Aug 23 08:53:10 CEST 2006
    C'est effectivement le getJdbcConnection(); qui prends du temps (autant pour moi je pensait que c'était le createStatement() ).

    Le truc c'est que le getConnection() ne passe pas à la compilation.
    Savez-vous comment remédier à ce soucis?
    Merci

  5. #5
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Citation Envoyé par Stessy
    En effet c'est ta méthode getJdbcConnection() qui prend beaucoup de temps.

    Le mieux que tu aies à faire c'est de créer un pool de connection.

    Ou alors si tu utilises une application standalone tu peux aussi laisser la connection ouverte tant que l'application n'est pas fermée.

    Voilà

    Le coup de la connection ouverte OK mais ça n'empeche pas les 5s au démarrage de l'application, certes j'en gagne en ne le faisant qu'une fois mais au niveau de mon appli c'est encore 5s de trop (surtout aux yeux de mon supérieur).

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Autre test à faire, c'est une connection simplement par sqlplus depuis la même machine qui fait le getConnection et voir combien de temps ça prend.

    Si tu as 5 secondes stable, ça sent un peu le truc qui part en timeout style un serveur de nom oracle paramétré à tort dans le sqlnet.ora....

  7. #7
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Essayez ceci:

    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
    import java.sql.*;
     
    class XXX
    {
      public static void main (String args [])
           throws SQLException
      {
        // Load the Oracle JDBC driver
        DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
     
        // Connect to the database
        // You must put a database name after the @ sign in the connection URL.
        // You can use either the fully specified SQL*net syntax or a short cut
        // syntax as <host>:<port>:<sid>.  The example uses the short cut syntax.
        String url = "jdbc:oracle:thin:@dlsun511:1721:dbms733";
        String userName = "scott";
        String password = "tiger";
     
        Connection conn =
          DriverManager.getConnection (url, userName, password);
        ...

Discussions similaires

  1. Convolution trop lente...
    Par progfou dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 05/08/2006, 11h44
  2. [Eclipse] Editeur de code trop lent
    Par Benzeghiba dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 10/11/2005, 14h02
  3. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  4. [SAGE] ODBC trop lent
    Par tileffeleauzed dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/11/2004, 09h56
  5. Envoi de mail trop lent
    Par MASSAKA dans le forum ASP
    Réponses: 3
    Dernier message: 15/10/2004, 10h57

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