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 :

Grosse lenteur lors d'une lecture de structure


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 80
    Par défaut Grosse lenteur lors d'une lecture de structure
    Bonjour,
    Sous Oracle v11.2.0.1 nous avons une requête sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Q_Name From Tb_Msg T Where T.User_Data.Id_Msg ='R103130815A864F9'
    Cette requête tourne en 0.5 secondes sur nos plateformes alors qu'elle met plus de 5 secondes chez nos clients. Nous avons éliminé le côté réseau car seule cette requête cause des problèmes

    La seule particularité est que "User_Data" est une structure comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TYPE QUEUE_MSG_TYP AS OBJECT
    (
            ID_MSG				VARCHAR2(30)
            ,MSG_SIZE			INTEGER
            ,REJECT_REASON		INTEGER
            ,PROP1				VARCHAR2(30)
            ,PROP2				VARCHAR2(30)
            ,PROP3				INTEGER
            ,MSG				BLOB
    );
    C'est également vrai que les performances sont mauvaises si on regarde l’exécution plan qui indique un table access full pour retrouver notre ID_MSG.

    Evidemment les développeurs ne veulent (peuvent ?) changer cette structure car cette table ne devrait pas contenir plus de 200 éléments. Chez le client on est à 2000 mais malgré tout en test chez nous la table avec 2000 éléments ne prends pas plus de 1/2 seconde contre 5 chez eux.

    Auriez vous une idée pourquoi ?
    En vous remerciant.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il faudrait voir le script de création de la table.

    Il manque juste un index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create index ix_Tb_Msg_User_Data_Id_Msg
    on Tb_Msg (User_Data.Id_Msg);

  3. #3
    Membre confirmé
    Inscrit en
    Février 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 80
    Par défaut
    Effectivement il n'y a pas d'index sur la structure.
    mais pourquoi a t'on alors une différence entre notre base et la notre aussi nette sur cette requête ?

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Ça peut être une différence de matériel, de charge de la machine qui peut faire d'autres choses en même temps, ou n'importe quoi d'autre.

    Ajoutez l'index, c'est transparent et ça résoudra votre problème.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Vous pouvez également tracer l'évènement 10046 (en level 12) pour analyser avec tkprof où passe le temps.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 80
    Par défaut
    effectivement un index serait la solution. Reste plus qu'à négocier !
    merci encore

Discussions similaires

  1. Maj non voulue d'un object lors d'une lecture
    Par c.tranquille dans le forum Hibernate
    Réponses: 2
    Dernier message: 08/03/2007, 13h22
  2. [VB.NET]Comment afficher 1 progressbar lors d'une lecture fichier ?
    Par evlp2004@hotmail.com dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/05/2006, 09h00
  3. Réponses: 11
    Dernier message: 27/04/2006, 08h56
  4. Lenteur lors de la lecture d'une base Access
    Par Lio590 dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/11/2005, 12h24
  5. Lenteur lors d'une insertion (sql server)
    Par shiners300 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2005, 09h09

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