Bonjour,
j'effectue pour mon appli delphi, une requète sur BDD AS400 pour que des utilisateur effectue des recherches de produits, l'utilisateur ayant saisie le début du n° de série (j'utilise alors LIKE ds ma requête ligne 6), ces produit devant ensuite remplir d'autres conditions ds d'autre tables (d'ou les 3 jointures).
Résultat ma requête prend 2 min
et je dois rajouter une autre jointure (LEFT a priori) qui encore augmenter le temps pris par la requête !
Code :
- SELECT COUNT(EX.SWSRL1) FROM TABLE_EXPEDITION EX
- JOIN TABLECOMMANDE CMD ON (CMD.sddoco = EX.swdoco AND CMD.sdkcoo=EX.swkcoo
- AND CMD.sdlnid=EX.swlnid)
- JOIN lbfrcjdep/F0005 F ON (SUBSTRING(CMD.sdmcu FROM 3 FOR 12)=F.drky)
- JOIN lbprdjde/f4104LA FLA ON (CMD.sditm=FLA.ivitm)
- WHERE ex.swsrl1 LIKE '1234%'
- AND EX.SWSHPJ IS NOT NULL
- AND F.DRSY='55' AND F.DRRT='C7'
- AND SUBSTRING(F.DRDL01 FROM 5 FOR 5) = 'O'
- AND FLA.IVAN8=0 AND FLA.IVxrt='D '
|
(je n'ai pas le choix des champs...)
je débute en jointure, donc ca dois pas être du tt optimisé !
si quelqun peut m'aider, merci d'avance 