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 :

Questionnement sur les INDEX


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut Questionnement sur les INDEX
    Bonjour,

    Je cherche à comprendre pourquoi dans l'exemple qui suit l'index composé et plus rapide que l'index simple.

    Je suis sous Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production

    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
     
    create table test as(
    select level as test_pk,dbms_random.string('L',10) as libelle from dual
    connect by level<1e6);
     
    update test set libelle='mwqwbtcajg' where test_pk between 15000 and 15050;
    commit;
     
    create index idx_lib_test_pk on test
    ( libelle,test_pk);
     
    create index idx_lib_pk on test
    ( libelle);
     
    analyze table test compute statistics;
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select /*+ INDEX(t IDX_LIB_TEST_PK) */* from test t
    where libelle = 'mwqwbtcajg'
    J'obtiens un cout de 3

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select /*+ INDEX(t IDX_LIB_PK) */* from test t
    where libelle = 'mwqwbtcajg'
    J'obtiens un cout de 4

    Pourquoi cette différence ?

  2. #2
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Ton index composite contient toutes les colonnes de ta requête :
    Tu fais 1 accès index pour IDX_LIB_TEST_PK.
    Tu as 1 accès index + 1 accès table pour IDX_LIB_PK.

    Si tu regardes l'EXPLAIN PLAN, tu verras dans un cas une étape supplémentaire ACCESS TABLE BY INDEX ROWID... et dans l'autre cas non

  3. #3
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    C'est ce que SQLPro appelle un index couvrant :
    http://sqlpro.developpez.com/cours/quoi-indexer/#LVIII

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut
    ok!
    Merci pour vos réponses.

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

Discussions similaires

  1. Question sur les index
    Par Veve44 dans le forum Oracle
    Réponses: 3
    Dernier message: 09/11/2005, 14h01
  2. Réflexion sur les INDEX ... !!! ??? !!!
    Par snoopy69 dans le forum Oracle
    Réponses: 4
    Dernier message: 22/09/2005, 15h58
  3. Question sur les index
    Par barok dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 31/05/2005, 08h06
  4. [DB2] Question sur les index et les vues
    Par ahoyeau dans le forum DB2
    Réponses: 1
    Dernier message: 14/03/2005, 08h30
  5. Questions sur les indexations
    Par freud dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/05/2004, 11h38

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