Bonjour,

J'ai un problème de lenteur au niveau d'une requête que je n'arrive pas à améliorer.

Je dois lister toutes les échéances existantes avec le numéro de facture si elle est déjà établie, les éventuelles relances (quand elles ont été faites, et par qui), le client à qui on a /va facturer, les participants (il s'agit de formations), le retard si la facture n'a pas été faire à la date prévue...etc.

J'ai essayé de réduire le nombre d'enregistrements (avec F.idFacture LIKE '$code%') pour ne prendre que les échénaces d'une année civile, j'ai essayé de mettre une pagination de 5 en 5 pour voir, mais ça ne change absolument rien, ça pédale déjà lorsque j'exécute la requête dans phpMyAdmin, alors je ne vous dis pas dans la page php...

Voici la bestiole :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT E.idConvention, E.idFacture, E.idEcheance, E.datePaiement, E.montantEch, DATEDIFF(E.datePaiement, CURDATE()) AS retard, F.montantReel, DATE(F.dateCreation) AS dateCreation,  DATEDIFF(CURDATE(), F.dateCreation) AS retardF, F.indexFacture,  E.commentaire, E.convRecue1, E.convRecue, E.condPaiement, F.nomFichier AS facture, F.Contentieux, CO.indexConvention, CO.idAction, CO.nomFichier AS convention,
(SELECT nomClient FROM sg_client AS C WHERE E.idClient=C.idClient) AS Dest1, 
(SELECT nomClient FROM sg_client AS C WHERE CO.idClient=C.idClient) AS entreprise, 
(SELECT CONCAT_WS(' ',prenomAuditeur, nomAuditeur) FROM sg_auditeur AS A WHERE E.idAuditeur=A.idAuditeur) AS Dest2, CO.listeParticipants, CO.dateFin, RE.nomFichier AS fichRelance, RE.numRelance, RE.dateRelance, RE.nomUser, RE.typeEnvoi
FROM `sg_echeancier` AS E	
JOIN sg_convention AS CO ON E.idConvention=CO.idConvention
LEFT JOIN sg_facture AS F ON  F.idFacture=E.idFacture
LEFT JOIN sg_relances AS RE ON F.idFacture=RE.idFacture
WHERE (ISNULL(F.dateCreation) OR (F.factureAnnulee<>1 AND F.facturePayee<>1)) AND E.montantEch>=0 AND F.idFacture LIKE '$code%'
ORDER BY CO.idAction, CO.indexConvention, E.idEcheance

Parfois un oeil extérieur est fort utile ! Merci à vous.