Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

Bonjour,

J'ai une table d'affectation possédant une date de début.
j'ai creé un index 'TEST' sur cette date.(Un index avec la fonction TRUNC(start_date))

Lorsque j'effectue la requète suivante, voici le résultat de l'explain plan:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
select a.*
from P_ASSIGNMENTS a
where TRUNC(start_date) = TRUNC(TO_DATE('18/09/1997','DD/MM/YYYY'))
 
Operation	                          Object Name	 Rows   Bytes   Cost
SELECT STATEMENT Optimizer Mode=ALL_ROWS		 127  	 	38  	 	      	             	 
  TABLE ACCESS BY INDEX ROWID	          P_ASSIGNMENTS	 127  	10 K	38  	 	      	             	 
    INDEX RANGE SCAN	                  TEST	         51
On utilise bien l'index.
J'aurais bien aimé savoir si avec la requète suivante, il est possible de faire référence à cet index.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
select a.*
from P_ASSIGNMENTS a
where TRUNC(start_date) = (select max(a1.start_date)
  	  		 from p_assignments a1
			 where a1.person_id = a.person_id 
			    and a1.sequence = a.sequence
			    and a1.end_date is null)
Car pour le moment, il construit la "vue temporaire" et fait un table acces full sur P_ASSIGNMENT a.

Merci d'avance.