PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → PB de lenteur avec récursivité et requetes
PB de lenteur avec récursivité et requetes
Iniciado por rodolphe, 01,nov. 2004 01:28 - 3 respuestas
Publicado el 01,noviembre 2004 - 01:28
Bonjour
J'ai un pb assez étonnant.
J'ai un fichier HP, qui contient environ 1800 enregistrements.
Un des champs est une clé étrangère, qui pointe sur cette meme table, en designant le parent. Vous imaginez donc que mon fichier represente un arbre.

Et je voulais justement remplir un arbre windev avec des données.
J'ai donc fait une fonction récursive, ou je passe en parametre l'identifiant du parent.
pour info, un identifiant de parent = 0 pour le plus haut niveau.

Ma fonction recupere à chaque fois les fils de mon identifiant en cours, et execute de nouveau la fonction sur chaque fils trouvé.

Or dès les premieres requetes, vérifié avec un info("...."), j'ai un temps d'execution relativement long, genre 10s entre chaque requete !!!!

y a t-il une raison valable ?

fichier HP sur windev 8, environ 1800 enreg, requetes SQL (Hexecutesql) pour recuperer les fils, execution sur le poste local (pas en reseau), etc.
J'ai vu des messages similaires dans le forum, mais aucune réponse précise à mon gout sur les causes et la résolution de ce genre de pb....

Merci d'avance je caaaale
Publicado el 02,noviembre 2004 - 13:16
Je pense qu'il n'est pas avantageux de faire des requêtes à chaque fois. Préférer faire une requête pour tout récupérer, et ensuite faire des parcours de la requête ?

--
forumnewswindev@ifrance.com
Publicado el 02,noviembre 2004 - 13:16
tu devrais utiliser l'analyuseur de perf pour vérifier que c'est bien ta requête qui ralenti. ce truc est super pratique pour optimiser.

A+
Adrien.
Publicado el 02,noviembre 2004 - 13:44
Pourquoi ne pas executer une seule fois ta requête surl'ensemble des 1800 enregistrements (sans clause where) et ensuite filtrer le résultat sur le critére qui t'intéresse.
Je pense que tu devrais gagner beaucoup en temps de réponse.