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 :

Vitesse d'exécution !


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut Vitesse d'exécution !
    Bonjour à tous !

    J'ai dois réaliser un travail scolaire sur oracle concernant les index et les clusters. Puis, je dois analyser l'effet des accélérateurs.

    Mais j'ai constaté que lors de l'exécution d'une requête simple, le temps d'exécution pouvais changer avec la même requête.

    A quoi cela est-il du ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Cela peut venir de plusieurs facteurs, notamment du statement cache.

    Oracle peut mémoriser une requête (plan d'éxécution, ...) afin de la reexécuter plus vite.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Expert confirmé 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
    Par défaut
    Citation Envoyé par JavierMartinez Voir le message
    Bonjour à tous !

    J'ai dois réaliser un travail scolaire sur oracle concernant les index et les clusters. Puis, je dois analyser l'effet des accélérateurs.

    Mais j'ai constaté que lors de l'exécution d'une requête simple, le temps d'exécution pouvais changer avec la même requête.

    A quoi cela est-il du ?

    Merci d'avance.
    Je me demande bien
    a) que est-ce que c'est un "accélérateur". Je connais les accélérateurs des particules mais j'ai peur que il ne s'agit pas de ça.
    b) comment t'a mesuré les temps d'exécution.

    Il est possible d'expliquer certaines différences des temps d'exécution de la même requête par les différences entre le hard parsing et le soft parsing (je ne pense pas que c'est vraiment facile de la mettre en évidence pour une seule exécution d'un requête simple) ainsi que de la disponibilité des blocs des données dans les buffers en mémoire par rapport à leur lecture sur le disque.
    Mais sans savoir ce que tu fait il n'est pas possible de décider de la vrai cause: peut être qu'il s'agit des erreurs de mesure, peut être des erreurs d'arrondi, peut être que le serveur n'est pas chargé de la même façon, peut être il fait plein lune, etc ...

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut
    Merci !

    J'ai constaté que la requête s'exécutait plus rapidement pendant seulement quelques secondes. Alors cette raison me semble la plus probable....MERCIII pour m'avoir éclairé sur ce point de curieusité !

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut
    Monsieur mniunma,

    Le temps d'exécution est affiché sur Oracle...
    Oui il s'agit bien d'un accélérateur de particule, de nos jours Oracle utilise cette technologie. Il faut se mettre à jour !!!!!

    Merci

  6. #6
    Expert confirmé 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
    Par défaut
    Citation Envoyé par JavierMartinez Voir le message
    Monsieur mniunma,

    Le temps d'exécution est affiché sur Oracle...
    ...
    Merci
    Affiché sur Oracle plutôt à gauche ou à droit ?

  7. #7
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut
    Affiché sur Oracle en bas à gauche !
    Exemple : Temps d'exécution : 0.0190

    Merci de consacrer du temps à répondre à ma question mais c'était une question assez vague. Et j'ai eu pleine satisfaction des réponses trouvées.

    Merci

  8. #8
    Expert confirmé 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
    Par défaut
    Temps d'éxecution avec le parse ou sans le parse ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO,
      D.DNAME
    FROM
     SCOTT.EMP E, TABLE(DEPT_P2(E.DEPTNO)) D WHERE E.DEPTNO = D.DEPTNO
     
     
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute   1000      0.02       0.02          0          0          0           0
    Fetch    11000      2.20       3.57          0      16000          0       10000
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total    12001      2.22       3.60          0      16000          0       10000
    Regarde TKPROF.

  9. #9
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 73
    Par défaut
    En faite j'ai une question bien précise !!

    Voici ma requête :

    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
    SELECT     GOKCAN.CLIENT.NOMCLI AS "NOM DU CLIENT", 
               DBAJAG.DEVIS.DATDEV AS "DATE",
               DBAJAG.DEVIS.DESDEV AS "DESCRIPTION",
               DBAJAG.DEVIS.TYPCHADEV AS " TYPE",
               DBAJAG.DEVIS.NPACHADEV AS "NPA",
               JAVIER.RUBRIQUE_DEVIS.TITDEV AS "RUBRIQUE",
               JAVIER.LIGNE_DEVIS.DESLIG  AS "DESCRIPTION DE LA LIGNE"       
    From       GOKCAN.CLIENT,
               DBAJAG.DEVIS,
               JAVIER.RUBRIQUE_DEVIS,
               JAVIER.LIGNE_DEVIS         
    where      DBAJAG.DEVIS.NUMCLI = GOKCAN.CLIENT.NUMCLI
    AND        JAVIER.RUBRIQUE_DEVIS.NUMDEV = DBAJAG.DEVIS.NUMDEV
    AND        JAVIER.RUBRIQUE_DEVIS.NUMRUB = JAVIER.LIGNE_DEVIS.NUMRUB 
    order by   DBAJAG.DEVIS.NUMDEV;
    j'ai fais un test avec 3 utilisateurs...Javier, Gokcan et Aitor sont les utilisateur...DBAJAG et notre DBA pour les tables communes aux trois.

    Dans le cas d'une requête comme ci-dessus...Comment pourrais-je l'optimiser ?
    Merci

  10. #10
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    sans le plan d'exécution comment pourrions nous t'aider ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL]ADODataset et ADOQuery Vitesse d'exécution.
    Par aityahia dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/06/2008, 19h44
  2. Réponses: 8
    Dernier message: 01/01/2008, 20h38
  3. Vitesse d'exécution d'un code en C.
    Par criga dans le forum C
    Réponses: 8
    Dernier message: 11/12/2007, 05h17
  4. Au sujet de la vitesse d'exécution des programmes
    Par emie31 dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2006, 13h42
  5. Réponses: 4
    Dernier message: 02/04/2006, 18h42

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