Bonjour,
je souhaiterais obtenir pour un client précis toutes lignes d'un BL pour lequel l'état du lancement n'est pas soldé ou annulée et il n'y a pas de commande (CDE_ID=0).
Voici la requête :
J'obtiens 15 secondes de temps d'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT NO_Offre FROM ((BL_LIGNE BLL INNER JOIN BL_ENTETE BLE ON BLE.LISTENOBL_ID=BLL.LISTENOBL_ID and BLE.CLIENT_ID=433) INNER JOIN LANCEMENT LCT ON BLL.LCT_ID=LCT.LCT_ID and LCT.ETAT_ID<>2 AND LCT.ETAT_ID<>5 and LCT.CDE_ID=0) INNER JOIN OFFRE OFR ON LCT.OFR_ID=OFR.OFR_ID
J'ai vérifier que tous les indexes soient bien définis.
La requête me retourne 1 seule ligne.
Si j'enlève la condition LCT.CDE_ID=0 le temps est de <1s.
De même si j'enlève la table des offres le temps est d'environ 2s.
Qu'est qui ne va pas? Y-a-t-il un moyen de réduire ce temps de 15s?
J'ai fait la requête sur firebird 1.5. (pas encore près pour la 2.1...)
Vous trouverez le diagramme en pièce jointe.








Répondre avec citation
Partager