PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Optimisation SQL
Optimisation SQL
Iniciado por Pierre, 25,mar. 2020 20:06 - 4 respuestas
Miembro registrado
185 mensajes
Publicado el 25,marzo 2020 - 20:06
Bonsoir,

J'ai une requête qui me donne le résultat escompté, mais c'est lent.

Si je laisse la ligne entourée, le résultat est immédiat. Si je l'enlève, + de 10 sec.
J'imagine que le moteur renvoie toutes le ligne de mon fichier pièces.
Comment faire pour que le paramètre renseigné en bas soit amené à la sous requête du join sans devoir le répéter ?




Merci d'avance et bonne soirée.

--
Pierre
Publicado el 27,marzo 2020 - 12:13
Bonjour.
Je ne sais pas sur que cela fonctionnerait, mais en remplaçant le id 65430 par un paramètre:le même paramètre aux 2 endroits?

Tenez nous au courant.
Michel Lahellec, Montreal
Miembro registrado
185 mensajes
Publicado el 28,marzo 2020 - 12:06
Bonjour,

C'est cette solution que j'avais mise en place. Elle fonctionne et c'est très bien ainsi.

Le but de mon optimisation était "plus théorique" que pratique.

Merci pour votre réponse et bon WE

--
Pierre
Miembro registrado
1.173 mensajes
Publicado el 28,marzo 2020 - 12:12
Bonjour,

Ce ne serait pas un problème dû aux alias ? Je constate que plusieurs alias identique désigne des éléments différents ex : IdPiece.
il me semble que le SQL n'est pas sensible à la casse.
Miembro registrado
499 mensajes
Publicado el 30,marzo 2020 - 09:55
Bonjour,

"Normalement", les SGBD modernes savent faire ce type d'optimisation, il faudrait faire un coup d'EXPLAIN pour regarder si les index sont bien définis et utilisés.

Mais je pense qu'il y a un autre souci dans cette requête. Ou du moins il y a une partie en trop. En effet la requête fait une jointure entre Pièces et une sous-requête qui appelle Pièces, sur le même ID (et qui, en plus, récupère les mêmes colonnes). Pour moi la partie avant le premier LEFT OUTER JOIN est superflue, et il devrait donc être possible de réduire d'un "niveau de jointure".

Ca résoudrait la question de la réutilisation de la condition (vu qu'il n'aura plus qu'une seule condition), et ça améliorerait d'autant les performances.