Bonjour tout le monde,
J'ai un petit problème d'index sur une base Oracle :
J'ai une table qui contient une 20 aine de champs, une clé primaire ID indexée, et 3 autres champs A, B et C indexés.
Ma requête est la suivante :
SELECT * FROM MATABLE MA
WHERE MA.A = 'VALEUR'
AND MA.B = 0 OR MA.B = 1
AND ROWNUM < 51
ORDER BY MA.ID
Cette requête ne passe pas par l'index défini sur les champs A, B et C mais fait un ACCESS FULL.
Si je remplace par
SELECT * FROM MATABLE MA
WHERE MA.A = 'VALEUR'
AND MA.B IN (0, 1)
AND ROWNUM < 51
ORDER BY MA.ID
je passe par l'index...
Le problème : je ne peux pas changer la requête ==> pourquoi la 1 ne passe pas par l'index alors que la 2 le fait ?
Merci,