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

JDBC Java Discussion :

Oracle ne retourne que 10 lignes en JDBC


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 40
    Points
    40
    Par défaut Oracle ne retourne que 10 lignes en JDBC
    Bonjour a tous,

    je travaille sur une application java. J'attaque un serveur Oracle 9i via Java/Jdbc.
    Après mettre rendu compte que par défaut Oracle ne retournait que 10, j'ai trouvé un
    paramètre magique qui m'a permi d'améliorer grandement le temps de balayage de mon
    resultset : defaultRowPrefetch. J'ai donc mis ce parametre dans le oracle-ds.xml de
    mon serveur Jboss à 50.

    Le prb que je constate est que dans le temps la récupération des 50 tuples devient de
    plus en long. Dans le temps la base prends aussi pas mal de volume. D'où ma question
    comment faire pour garder un temps de récupération constant en dépit de la taille de la
    base qui augmente.

    J'utilise le framework Hibernate. Mais pour faire ma requete je récupere une pure
    connection JDBC via Hibernate. Un peu de code.

    Dans JBoss mon oracle-ds.xml ressemble à ça :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
    <local-tx-datasource>
    <jndi-name>OracleDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@<IP>:<PORT>:<SID></connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>seb</user-name>
    <password>seb</password>
    <connection-property name="defaultRowPrefetch">50</connection-property>
    <blocking-timeout-millis>5000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes>
    <max-pool-size>20</max-pool-size>
    <min-pool-size>10</min-pool-size>
    <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
    </local-tx-datasource>
    </datasources>
    Le code Java ressemble à ça :

    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
    // Partie 1)
    Connection cnx = HibernateCnx.getSession().getConnection();
    PreparedStatement ps = cnx.prepareStatement("SELECT * FROM ...");
    ps.setString(1, idAuto);
    ps.setInt(2, cntTacheRetour);
    ResultSet rs = ps.executeQuery();
    rs.setFetchDirection(ResultSet.FETCH_FORWARD);
     
    // Partie 2)
    while (rs.next()) {
     
    // Traitement (getter/setter)
    // Récupération des champs de la requete
     
    }
    Le temps d'exécution de la requete est stable en dépit du volume dans la base. Mais
    le temps de récupération varie en fonctionne du volume (partie 2). Qui sait quels
    sont les paramètres à utiliser pour garder un temps dans cette partie aussi.

    Merci (espérant que j'ai été clair)

    Balises [Code] rajoutées par Ricky81
    Merci d'y penser à l'avenir

  2. #2
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Après mettre rendu compte que par défaut Oracle ne retournait que 10
    Quesaquo ? J'ai jamais vu ca

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/12/2011, 18h34
  2. [Oracle] PHP ne retourne que la dernière ligne d'un resultat d'une procedure stockée ORACLE
    Par tytous dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 08/06/2010, 07h57
  3. un SELECT qui retourne plus de ligne que la table
    Par gomodo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/10/2007, 14h17
  4. [Oracle] Problème d'insertion de ligne via JDBC
    Par Invité dans le forum JDBC
    Réponses: 3
    Dernier message: 17/07/2007, 12h21
  5. [Oracle 9iR2][SQL] Retourner x premières lignes
    Par mainecoon dans le forum Oracle
    Réponses: 2
    Dernier message: 07/02/2007, 19h24

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