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 :

Problème de temps d'exécution aléatoire


Sujet :

SQL Oracle

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Problème de temps d'exécution aléatoire
    Bonjour,


    je demande votre aide car je suis vraiment paumé.
    J'ai une requete au sein de mon appli qui fait :

    Select 1.a,1.b,1.c,1.d,2.e
    FROM table1 1, table2 2
    WHERE 1.key=2.key and 2.id=x

    x est obtenu via mon appli Java.
    les column key (qui sont des FK) ont chacun un index, de meme que 1.a et 1.b

    Mon probleme est le temps d exec :
    Sur des exports massifs appelant cette requete, l'exection simple prend de 15 a 2300 ms ~~

    Et si je refais la meme manip, les temps sont les meme mais plus pour les meme valeur de x( je sais pas si jsuis clair sur ce point..)

    Dernier point : j'ai fait tourner 100fois la requete avec la meme valeur de x, et le resultat est le meme : résultats variables de 15 a 2300ms.



    Maintenant la cerise sur la gateau : autre base de la MEME instance Oracle 10G :

    temps d exec allant de 0 a 15ms. Donc je pense pouvoir assurer que la config de l'instance nest pas a remettre en cause.

    Est ce que le fait que la table 1 ait 6300 entrees, et l autre 300 peut etre un facteur de temps d acces si random ?

    Est ce qu il y a un moyen de rendre plus stable mes temps d acces ?


    Merci de votre aide a l avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    As-tu un index sur table2.id ?
    Sioui, ça pourrait un problème de cast sur l'index.
    Ex: si Id est numeric et que x est une string, ton index n'est pas utilisé pour la recherche, donc ça ralenti.
    C'est pas nécessairement ça, mais je commencerais par vérifier de ce côté.

    Yroubag

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    oui j ai bien un index sur le le 2.id
    et le x que java renvoie est bien un int :/

    j'essaye de prendre en main explain_plan et les stats sous sql+ pour etoffer ma question, mais en tant que dev pur, c est nouveau pour moi -_-

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Tu compare le comportement d'une base Oracle 9 et Oracle 10?
    T'a requête utilise de variable de liaison (binding variables) ou non ?
    Peux tu préciser t'a méthode pour calculer les temps d'exécution ?
    Et finalement détailler un peu «*les exports massifs" et ce que tu fait en fait ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    je ne compare pas le comportement entre 9 et 10, je suis uniquement sous 10G.
    Quant a la liaison, elle est fixe, pas de variable.
    ma methode de calcul s'effectue sous java :

    long t0= System.currentTimeMillis();
    //code
    Long temps =System.currentTimeMillis()-t0;

    et TOAD me renvoie les meme valeurs.
    Quant aux exports, il s'agit de remonter des infos de la base pour 'construire'u un document via mon appli et l'exporter dans un fichier texte.

    L'export d'un document, recherche en base base comprise, prend 3 a 4s, mais 2s sont allouées a la remontee de la requete ci dessus, donc quand j'export 5000documents, c est ingerable pour moi :/


    vos conseils me seraient du plus grand secours

Discussions similaires

  1. problème du temps d'exécution
    Par safine dans le forum VB.NET
    Réponses: 13
    Dernier message: 11/10/2012, 16h44
  2. [Admin] Problème de temps d'exécution d'un rapport Webi
    Par zaza78 dans le forum Administration-Migration
    Réponses: 7
    Dernier message: 28/09/2010, 11h58
  3. Réponses: 1
    Dernier message: 28/09/2009, 09h30
  4. [SqlServer2000] Problème de temps d'exécution d'une proc stock
    Par GuillaumeBibaut dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2006, 15h31
  5. [SQL] Problème de temps d'exécution maximum
    Par manshoon dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/05/2006, 15h07

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