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 :

acces full sur table indexée ?


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Par défaut acces full sur table indexée ?
    Bonjour


    Oracle 9ir2
    J’ai une requête de 2 tables A et B dont B est vide j’ai calculé les stats sur les 2 mais
    Le plan d’exécution fait toujours un acces_full sur la table B malgré qu’il y ait un index sur cette table(b). voici ma requete :

    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 A.RCA_ID AS Rca_1d,
             A.RCA_2 AS Rc_2,
             A.RC3 AS RC3,        	       
             A.RC_4 AS RRC_4,
             A.RC_5 AS RRC_5
            FROM A  , B 
            WHERE 
                  A.RCA_ID = B.RCA_ID (+)
                  AND A.col1 = 1
                  AND A.col2 = 1
                  AND A.col3 = &pPosDate
                  AND A.col4 = 'A'
                  AND ROWNUM = 1         
                  ORDER BY B.col_date DESC

    Voici son plan d’execution:



    SELECT STATEMENT, GOAL = CHOOSE Cost=1985 Cardinality=1 Bytes=83
    SORT ORDER BY Cost=1985 Cardinality=1 Bytes=83
    COUNT STOPKEY
    HASH JOIN OUTER Cost=1984 Cardinality=1 Bytes=83
    TABLE ACCESS BY INDEX ROWID Object name=A Cost=2 Cardinality=1 Bytes=35
    INDEX RANGE SCAN Object name=INN_A _col_1 Cost=2 Cardinality=1
    TABLE ACCESS FULL Object name=B Cost=1982 Cardinality=1 Bytes=48


    table A

    (col1, col2, col3, col4) ---> index concatené table A

    RCA_ID-----> pk indexée aussi

    Table b

    RRPP.col_date -----> index seul de la table b

    Le problème il fait un acces full sur la table B malgré que l’index est crée

    J’ai vérifié si l’index est ignoré dans les cas de conversion implicite ,valeur nulle, etc, mais c pas le cas ? pourriez vous m’orientez svp ? pour ne pas faire acces full sur B

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,
    Vous accédez à la table B par RCA_ID, qui n'est pas indexé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Par défaut
    Je vous remercie c ça le probleme!!!!

  4. #4
    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
    le but de l'optimiseur n'et pas d'utiliser les index qur=e tu crée mais de trouver le plan d'execution le plus rapide.
    Si ta table est vide, pourquoi utiliser un index pour la parcourir?
    Si j'ai bien lu ton enoncé, je suis entièrement d'accord avec l'optimiseur!

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

Discussions similaires

  1. [WD-2003] Macro pour rechercher et remplacer sur table Index
    Par milia123 dans le forum VBA Word
    Réponses: 0
    Dernier message: 12/01/2013, 15h02
  2. Accès à une Table Indexée (index composite) en VBA ACCESS
    Par Denis VERNON dans le forum Access
    Réponses: 1
    Dernier message: 21/04/2006, 18h47
  3. Réponses: 6
    Dernier message: 31/03/2006, 17h05
  4. Réponses: 4
    Dernier message: 23/09/2005, 09h16
  5. [Sybase] Utilisation indexes sur table Proxy
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 20/02/2004, 10h20

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