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 :

Probleme TABLE ACCESS BY INDEX ROWID


Sujet :

Oracle

  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 Probleme TABLE ACCESS BY INDEX ROWID
    Bonjour,

    Sous Oracle 9ir2, j’ai le probleme suivant:

    SELECT C.CODE,
    (SIGN(NVL(SUM(C.col1), 0))) CRES,
    C.TRX_TYPE
    FROM RISK C
    WHERE C.col2 IN ( :1, '!NUL')
    AND C.col3 IN ( :2, '!NUL')
    AND C.CANC C IN ( :3, '!NUL' )
    AND C.RC IN ( :4, '!NUL')
    AND C.MRI IN ( :5, '!NUL')
    AND C.col4 = :6
    AND C.col5 = :7
    AND C.col6 IN (:8, '!NUL')
    GROUP BY C.CODE,C.TRX_TYPE

    Voila ce que j'ai comme PK et indexes:

    Il ya une PK_RISK primary key (RISK_DB_ID)
    Il ya un index INN_RISK_1 on RISK (col3, col2, RC, MRI, CANC) dans cet ordre
    Il ya un index INN_RISK_2 on RISK (CODE, TRX_TYPE)

    Le plan d'execution me donne les informations suiavantes:
    SELECT STATEMENT, GOAL = CHOOSE Cost=3 Cardinality=1 Bytes=51
    SORT GROUP BY Cost=3 Cardinality=1 Bytes=51
    INLIST ITERATOR
    TABLE ACCESS BY INDEX ROWID Object owner=A Object name=RISK Cost=2 Cardinality=1 Bytes=51
    INDEX RANGE SCAN Object owner=A Object
    name=INN_RISK_ 1 Cost=1 Cardinality=1


    C’est une petite table de 256 lignes elle garde cette taille a vie , le coût reste toujours 3, le problème il ya un TABLE ACCESS BY INDEX ROWID, qui bouffe de cost, je veux que le cost final devient 1, quelqu’un à une solution pour ca svp ? parceque cette requete elle est encapsulé par d’autres requete !!!!!!!, et presque toute les requetes ont le meme problemes

    Merci d’avance de vos reponses

  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
    Attention, le coût d'un plan d'exécution n'a de sens pour le CBO que comparé pendant la phase de compilation/d'optimisation à d'autres plans d'exécution possibles pour la même requête dans le même environnement. Autrement dit, ce n'est pas parce que le coût est divisé par 3 que la requête sera 3 fois plus rapide.

  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
    Merci Pifor,

    Mais tu connais pas une methode pour balayer les 256 ligne de la table sans le access by rowid index? ou bien d'autres hint? j'ai utilisé le full(table) ca ne ma rien donné?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    S'il passe par l'index pour une table de cette taille, tes stats ne sont peut etre pas à jours.

    Autrement, tu détruis tes index ! pour une table de 256 lignes statiques, ils ne servent à rien.
    ou
    tu mets des fonctions sur la premiere colone de tes index dans ta clause where.
    ...
    col3||'' in....
    ...

    Mais c'est probablement inutile en terme de perf.

Discussions similaires

  1. Import tables AS400 avec index dans MS Access
    Par flodu42 dans le forum AS/400
    Réponses: 5
    Dernier message: 09/02/2010, 20h40
  2. Probleme de Type de champs dans une table access
    Par dimis dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/07/2009, 10h15
  3. [XMLTYPE] - Index - TABLE ACCESS FULL
    Par jacquesh dans le forum SQL
    Réponses: 10
    Dernier message: 16/01/2008, 22h51
  4. Problème pour exporter une table Access vers Excel
    Par PAULOM dans le forum Access
    Réponses: 22
    Dernier message: 02/05/2006, 13h42

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