Index non utilisé sur une base
Bonjour,
j'ai 2 bases de données: Une prod, et une qualif qui ont la meme volumétrie de donnée, ainsi que d'architecture.
Les développeurs m'ont filé une requete bien lourde a analyser.
Lorsqu'on l'excute sur la qualif, elle tourne niquel, 0.5sec, par contre sur la production, les temps de réponces sont tres long (15-20sec)
J'ai fais lancé un plan d'execution sur les 2 environnements, et la différence est que sur la qualif il passe par un index, et pas sur la prod.
J'ai donc vérifié l'index, il est bien valide,
les stats sont récentes
j'ai fais un rebuild
Et il ne passe toujours pas par ce fichu index ....
La requete possede simplement des jointures INNER JOIN
L'indexe est sur une table avec 3Million d'enregistrements qui possede 2 champs
l'indexe est sur ces 2 champs en UNIQUE.
La jointure correspond bien a ces 2 champs dans l'ordre qu'il faut.
J'avoue que je seche la :((
Quelqu'un aurait une idée ?
Voici le bout de requete qui coince
Code:
1 2 3 4 5 6 7 8 9 10 11
| AND (lot0_.LOT_OID NOT IN
(SELECT lot4_.LOT_OID
FROM t.a_LOT lot4_
INNER JOIN t.a_LOT_TRAITEMENT listetrait5_
ON lot4_.LOT_OID =
listetrait5_.LOT_OID
INNER JOIN t.a_TRAITEMENT traitement6_
ON listetrait5_.TRAIT_OID =
traitement6_.TRAIT_OID
WHERE traitement6_.TRAIT_TYPE = 'AUTORIS_SP'
AND traitement6_.TRAIT_ETAT = 'VALIDE')) |