Visualiser un index sous Oracle ??? [Résolu/Fermé]

Signaler
-
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
-
Bonjour à tous,
J'arrive sur un bdd Oracle que je n'ai pas créé, je vois qu'il y a des index de créés sur certaines tables, mais je ne sais pas comment voir sur quel champs il ont été créé.
QUelqu'un pourait il m'aider ?
Merci d'avance.
Nico.

8 réponses

Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
477
Salut,

Tu peux faire un select dans les views USER_INDEXES et USER_IND_COLUMNS qui te donnent respectivement pour chaque table la liste des indexes et pour chaque index la liste des colonnes et leur ordre.

michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Autre petite question.
J'ai 2 tables exactement similaires (même structure, même index, même nb d'enregistrement...), j'ai bien mes index de créés (enfin je les vois dans les vues mentionnées ci-dessus), mais malgré cela, sur une table les requetes rames et sur l'autres pas de problème... D'ou pourrait venir le problème ?
Faut il regénéré les index (même si on les voit) ? Y'a t-il autre chose à vérifier ?
Encore merci.
la réponse ci-dessus est en effet correcte.
Une autre solution pour ceux qui aiment les interfaces plus "simples", je vous conseille d'utiliser un logiciel comme toad
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
477
Oracle utilise l'index dans l'ordre des colonnes, c'est à dire que si tu as un index sur les colonnes a, b et C dans cet ordre là, une "where condition" qui porte uniquement sur la col A ou sur les colonnes A et B utilisera l'index. Par contre, une query qui porte uniquement sur la colonne B ou sur les colonnes B et C n'utilisera pas l'index.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
Trop fort grofwa !!!
Merci beaucoup.
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
477
Hé, un connaisseur !

Mmmm, Toad !

;-)

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
477
Deux tables identiques dans deux bases différentes donc ?
Alors regarde dans init.ora le paramètre optimizer_mode qui peut être à RULE ou à CHOOSE et qui détermine la manière dont s'exécutent les requêtes. Tu peux changer cela au niveau de la session (alter session...)
Si tu es en mode CHOOSE, il faut activer les statistiques sur les indexes et les tables.

Michael

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
Ok, je vais regarder ça.
Mais sinon, pour ma culture perso:
Si je fais un select avec une condition WHERE A='test'
Est ce qu'un index créé sur le champ A, B, et C est aussi efficace que s'il avait été créé que sur le champ A ?