Non utilisation d'un index (optimiseur)
Bonjour,
J'ai un problème avec une requête.
La requête est de ce type :
Code:
1 2 3 4 5 6 7
|
select * from (
select col_a, col_b, .....
from ma_table
where condition_booleene = 'N'
order by col_date ASC )
where rownum < :variable_bindée |
Il existe un index de ce type : condition_booleene, col_date asc
la table fait en gros 2,5 millions de lignes et la condition : condition_booleene = 'N' retourne en gros moins de 100 lignes.
J'ai bien calculer les stats avec toad avant de faire un explain, mais celui-ci force le scannage de table sur ma_table au lieu de partir de l'index.
Il en découle que la requête met 3 plombes à s’exécuter, alors que si je force l'utilisation de l'index celle-ci s’exécute instantanément (ou presque).
Bref, comment puis-je orienter mes recherches afin que l'optimiseur me sorte un plan potable pour cette requête sans passer par un hint oracle ?