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

Administration Oracle Discussion :

Index non pris en compte


Sujet :

Administration Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Index non pris en compte
    Bonjour a tous,

    Voila j'ai cette requête qui refuse de prendre en compte mes index crées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT DISTINCT a.num_rion, b.piv_decl_id, a.activite
      FROM selvpt_mer_histo a,
    	   selolt_p_venti_mer_abo b
     WHERE a.histo_mer_id = b.histo_mer_id
    UNION
    SELECT DISTINCT a.num_rion, b.piv_decl_id, a.activite
      FROM selvpt_mer_histo a ,
    	   selolt_p_ventilation_mer b 
     WHERE a.histo_mer_id  = b.histo_mer_id
    j'ai un index sur la colonne histo_mer_id dans chacune des table et j'ai quand même un table access full lors de la jointure a.histo_mer_id = b.histo_mer_id .

    Quelqu'un aurait une idée?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Si Oracle choisi de ne pas utiliser l'index c'est qu'il ne le juge pas pertinent.
    Quelles sont les volumétries de vos tables ?
    Est-ce que les statistiques sont à jour ?
    Pour information l'opérateur UNION effectue déjà un DISTINCT sur le résultat global et qu'il est donc inutile de le préciser dans les différent select.

  3. #3
    Membre averti
    Avatar de ora_home
    Homme Profil pro
    Consultant Oracle
    Inscrit en
    Février 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant Oracle
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 103
    Points : 376
    Points
    376
    Par défaut
    Je confirme le message de Waldar. Peut être que tu ramène assez d'informations, et Oracle préfère un FULL SCAN que de passer par l'index si les données sélectionnées dépassent un certains pourcentage.

    Si tu insiste d'utiliser ton index, tu peux le forcer par un HINT.

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Si la méthode de jointure est HASH JOIN c’est normal sinon postez le plan d’exécution

  5. #5
    Membre averti
    Avatar de ora_home
    Homme Profil pro
    Consultant Oracle
    Inscrit en
    Février 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant Oracle
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 103
    Points : 376
    Points
    376
    Par défaut
    Déjà le UNION est automatiquement transformé en UNION ALL, puis oracle procède à un tri pour supprimer les doublon. donc oracle préfère un FTS(Full Table Scan)

Discussions similaires

  1. Z-index non pris en compte
    Par laurentSc dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 28/04/2014, 23h48
  2. [MySQL-5.0] Index non pris en compte
    Par toufika13 dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/04/2013, 17h56
  3. index.php non pris en compte
    Par Natsirt dans le forum Apache
    Réponses: 1
    Dernier message: 04/04/2011, 14h13
  4. index non pris en compte dans inner select
    Par eponette dans le forum SQL
    Réponses: 2
    Dernier message: 12/11/2007, 12h47
  5. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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