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

Oracle Discussion :

Optimisation de requette TABLE ACCESS (FULL)


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut Optimisation de requette TABLE ACCESS (FULL)
    Bonjour
    je possede un requette qui selectionne des ligne de plusieur table avec jointures externes et group by lorsque je fait un Explain sous Toad il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT STATEMENT Optimizer=CHOOSE
      SORT (GROUP BY)
        FILTER
          NESTED LOOPS (OUTER)
            NESTED LOOPS
              NESTED LOOPS
                NESTED LOOPS
                  TABLE ACCESS (FULL) OF EL_CONTRAT
                  TABLE ACCESS (FULL) OF EL_TVA
                TABLE ACCESS (FULL) OF EL_SERVICE
              TABLE ACCESS (FULL) OF EL_CONTRAT
            INDEX (UNIQUE SCAN) OF PK_EL_CONSULTANT (UNIQUE)
    je pense que lorsque je trouve TABLE ACCESS (FULL) c a dire que ma requette n'est pas optimisée, alors que ce que je doit faire exactement?
    merci[/code]

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour et bienvenue sur le forum Oracle ,

    Merci de ne pas oublier de bien lire les régles et de détailler le contexte technique , car c'est en nous aidant que nous pourrons a notre tour mieux vous aider .

    Concernant votre probléme :

    TABLE ACCESS (FULL) OF EL_CONTRAT
    cela indique que vous parcourez toutes les lignes de la table, et effectivement cela peut parfois poser des problémes de performances.

    quelle est la volumétrie de ces tables ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count (1) from ta_table ;
    Avez vous des index sur cette table ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select index_name from dba_indexes where table_name =upper('&table_name') and owner =upper('&owner') ;
    Les stats on t'elles déja été calculés ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select last_analyzed from dba_tables where table_name   =upper('&table_name') and owner =upper('&owner') ;
    Est ce que les colonnes dans les clauses WHERE sont indéxés?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select column_name from dba_indexes where table_name ==upper('&table_name') and owner =upper('&owner') ;
    Jaouad

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    pour la volumétrie mes table ne sont pas encore volumuneuse car je suis en phase de developpement mais c sure que un jours elle seront volumuneuse et c pour ca je veut eviter ce probleme.
    pour les index de cette table oui elles sont indéxés
    pour le stats j'ai jamais calculer par ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select last_analyzed from dba_tables where table_name   =upper('&table_name') and owner =upper('&owner') ;
    retourne une valeur null
    et enfin pour les colonnes si elle sont indexé, je vous repond que non car la requette que vous m'avez donne retourne la valeur null

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Concernant les statistiques.

    Il faut absolument les calculer et maniére réguliére, notament si votre base est l'objet de insert/update/delete fréquent.

    Si vos tables sont indéxés et non pas les colonnes des requêtes , il vous faut vous poser la question si c'est normal ou pas .

    Je n'ai toujours pas eu la version de bases de données.
    Avec quel outil avez vous exécuté les requêtes ?

    Jaouad

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    oui désolé j'avait oublier de te dire avec quelle outils, donc j'utilise oracle 9i, et l'explain j'utilise Toad 8.5

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Donc il est normal que mes requêtes ne raménent aucun enrengistrement, elles sont prévus pour Sql*Plus :

    1=> Soit tu les éxécute sous Sql*Plus.
    2=> Soit tu remplace le & par : ( Mais je n'en suis plus trés sur )

    Jaouad

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    si j'ai changé la variable & par le nom de table et l'autre par le nom d'utilisateur

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    OK si tu as mis le nom du prpriétaire et celui de la table en Majuscule c'est ok.

    Donc en conclusion :
    . Calculer les statistiques de maniéres réguliéres
    . Revoir (Peut être) la statégie des index pour que ces derniers collent mieux aux requêtes.


    Bon courage
    Jaouad

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    merci, tu n'a pas un tutorial par hazard sur le web pour m'aider a faire ca?
    c gentil merci

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Concernant les requêtes gourmandes :
    TKPROF et Explain Plan

    Concernant le calcul des statistiques :

    Package appartenant à SYS : DBMS_STATS
    Voila

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    merc jaouad té tres gentil
    bon courage

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

Discussions similaires

  1. Optimisation de requete car des full access table
    Par elkamaro dans le forum Administration
    Réponses: 25
    Dernier message: 17/06/2011, 15h04
  2. Suppression d'un TABLE ACCESS FULL
    Par _-Sky-_ dans le forum Optimisations
    Réponses: 8
    Dernier message: 12/12/2008, 09h29
  3. [XMLTYPE] - Index - TABLE ACCESS FULL
    Par jacquesh dans le forum SQL
    Réponses: 10
    Dernier message: 16/01/2008, 22h51
  4. [9i] Eviter un table access full via une vue
    Par Débéa dans le forum SQL
    Réponses: 10
    Dernier message: 25/10/2006, 23h09
  5. Problème de TABLE ACCESS FULL
    Par elitost dans le forum Administration
    Réponses: 14
    Dernier message: 25/09/2004, 12h37

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