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

Administration Oracle Discussion :

Problème de performances


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut Problème de performances
    Je me tourne vers vous car j'ai un problème de perf. incompréhensible (pour moi !)
    Voilà, le select suivant :

    SELECT TABLE.C1
    FROM schema.TABLE
    WHERE ((1176882733 > T300.C300759800)
    AND (TABLE.C250000011 = 0)) ORDER BY 1 ASC
    Est envoyé des milliers de fois (seul la valeur du WHERE change) par une transaction, et est très lent... c'est d'autant plus incompréhensibles que ma TABLE ne fait que 50 lignes... et bien sur l'EXPLAIN donne un 'ACCES FULL' sur la table... normal...
    Voici les paramèters de mon instance :
    SGA_max_size = 129 Mégas
    Db_cache_ize = 2,40 Méga
    Shared_pool_size = 48 Mégas
    Shared_pool_sreserved_size = 2.40 Méga (identique à db_cache_size)
    Sort_area_size = 0.5 Mégas
    Log_buffer = 0.5 Mégas (identique à sort_area_size)

    Ce n'est pas un problème de chemins d'accès tant les tables sont ridiculement petites.. j'opterai plutot pour un problème de configuration d'espace mémoire ou de tri mal défini...
    Je vous livre en copie un document word qui décrit l'ordre sous OEM...

    Pouvez-vous m'aidre ?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Pouvez-vous nous dire ce qui change exactement dans le clause WHERE d'une requête à l'autre ?

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut
    Bonjour!

    Est-ce que cette requête est bindée?
    Ci ce n'est pas le cas, il faux le faire!

  4. #4
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut
    Merci pour vos réponses :

    Pour Pifor : C'est la valeur du nombre (à droite du WHERE) qui change à chaque fois !

    Pour Aline : Je ne sais pas si la requête est bindé car c'est du logiciel... Au fait, comme on est pas en DB2, comment binde-t-on une requete sous Oracle ?

    je voulais surtout avoir votre avis sur mes paramètres... je trouve par exemple, que le paramètre Db_cache_ize à 2,40 Méga est un peu juste... non ?

    Il y a aussi un traitement de delete/create qui est excessivement long (10 heures pour 4000 lignes)... alors que les tables ne sont pas très volumineuses (maxi 8000 lignes !)... moi, je pesne vraiment qu'il manque quelque chose à mes paramèters !

    Merci encore pour vos réponses...

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Au fait, comme on est pas en DB2, comment binde-t-on une requete sous Oracle ?
    C'est le code applicatif qui doit compiler la requête avec la bind variable V:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TABLE.C1 
    FROM schema.TABLE 
    WHERE ((:V > T300.C300759800) 
    AND (TABLE.C250000011 = 0)) ORDER BY 1 ASC
    puis l'exécuter autant de fois que nécessaire en donnant à V la bonne valeur pour chaque exécution (le "bind"). Si le code ne peut pas être modifié, on peut éventuellement changer le paramètre CURSOR_SHARING.

    je voulais surtout avoir votre avis sur mes paramètres... je trouve par exemple, que le paramètre Db_cache_ize à 2,40 Méga est un peu juste... non ?
    Quelle est votre version d'Oracle ?
    Quelle la taille "réelle" de la base (tables + index) ?
    Est-ce que vous utilisé Statspack ou la trace/TKPROF pour les requêtes trop longues ou un autre outil pour analyser les performances ?

  6. #6
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut
    Ma version d'Oracle est une 9i sous Windows...
    Le principal TS fait 10 Gigas mais n'est utilisé qu'à 20 %...le reste fait 5 Gigas ...
    Non je n'ai aps encore utilisé TKPROF car je croyais vraiment que mes paramètres mémoires étaient un peu 'courts' ... mais je crois que je vais être obligé de passer par là ...

    Qu'en pensez-vous ?

    PS : j'ai oublié de vous dire que le TS principal a été réorganisé hier...

Discussions similaires

  1. Problème de performance avec LEFT OUTER JOIN
    Par jgfa9 dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/07/2005, 13h17
  2. [jeu]problème de performance d'un algo
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 30/05/2005, 16h07
  3. [C#] Probléme de performance avec IsDbNull
    Par jab dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2005, 11h39
  4. [oracle 9i][Workbench]Problème de performance
    Par nuke_y dans le forum Oracle
    Réponses: 6
    Dernier message: 03/02/2005, 17h38
  5. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 16h18

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