Bonjour à tous,

Je suis sur Oracle 10g.
J'étudie l'optimiseur sur une simple requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select * from client,contrat where nom='X' and client.numclient=contrat.refclient ;
J'obtiens le plan suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Nesteed loops
   Table access contrat Full
   Table access client by index rowid
           Nom='X'
           Index  Pk_client unique scan
                  client.numclient=contrat.refclient
Mes tables ne contiennent pas beaucoup de données (au max 5 tuples par table).
Mon client 'X' apparaît 3 fois dans ma table client.
Mes stats sont à jour et le paramètre optimizer_mode est à choose.

Pourquoi l'optimiseur me fait passer par l'index alors qu'il me semblait un full table scan sur de petite table est préférable ?

Je vous remercie par avance pour votre aide.
cordialement
Startout