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 : Sélectionner tout - Visualiser dans une fenêtre à part
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'))