PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Lenteur chargement d'une table mémoire depuis un fichier HF
Lenteur chargement d'une table mémoire depuis un fichier HF
Iniciado por p.poinsignon, jul., 05 2005 2:07 PM - 4 respostas
Publicado em julho, 05 2005 - 2:07 PM
Bonjour mes fichiers (HF classiques) sont sur un serveur de données et je charge une table mémoire avec les données de plusieurs fichiers HF. Je constate qu'avec déjà 300 enreg cela met une ou deux secondes, bon le temps est correct mais le nombre d'enreg va très vite monter et j'ai peur que le temps de chargement de ma table aussi!! Voici mon code, y a t'il de grosses erreurs à corriger pour améliorer la vitesse??

PS: J'utilise des hlitrecherche sur d'autres fichiers pour renseigner les noms en fonction des identifiants auto liés au fichier matériel, je ne sais pas si c'est la bonne méthode d'ailleurs.

Merci d'avance


TableSupprimeTout(Table)
HLitPremier(MATERIEL)
TANTQUE PAS HEnDehors(MATERIEL)
HLitRecherche(LIEU,LIEUCLEUNIK,MATERIEL.LIEUCLEUNIK)
HLitRecherche(FAMILLE,FAMCLEUNIK,MATERIEL.FAMCLEUNIK)
HLitRecherche(ETABLISSEMENT,ETABCLEUNIK,LIEU.ETABCLEUNIK)
HLitRecherche(UTILISATEUR,UTILCLEUNIK,MATERIEL.UTILCLEUNIK)
HLitRecherche(ETAT,ETATCLEUNIK,MATERIEL.ETATCLEUNIK)
TableAjoute(Table,MATERIEL.IDENTIFIANT_INT+TAB+MATERIEL.MATCLEUNIK+TAB+FAMILLE.NOM+TAB+MATERIEL.DESIGNATION+TAB+ETAT.NOM+TAB+UTILISATEUR.NOM+TAB+LIEU.ETAGE+" - "+ETABLISSEMENT.NOM+" - "+LIEU.NOM+TAB+MATERIEL.NOMNETBIOS+TAB+MATERIEL.COMMENTAIRES)

HLitSuivant(MATERIEL)
FIN
Publicado em julho, 05 2005 - 4:24 PM
Bonjour,

Généralement au delà d'une cinquantaine d'enregs, l'utilisateur ne lit plus
le contenu de la table. Il faut vous poser la question, quelle requête
mettre en oeuvre pour afficher à l'utilisateur les enregistrements dont il a
besoin.



L'appli va gagner en rapidité et surtout en utilisabilité.
--
Ed en Ligne



"Lepatou" <p.poinsignon@caisse-epargne.nc> a écrit dans le message de news:
42ca5144$1@news.pcsoft.fr...


Bonjour mes fichiers (HF classiques) sont sur un serveur de données et je
charge une table mémoire avec les données de plusieurs fichiers HF. Je
constate qu'avec déjà 300 enreg cela met une ou deux secondes, bon le
temps est correct mais le nombre d'enreg va très vite monter et j'ai peur
que le temps de chargement de ma table aussi!! Voici mon code, y a t'il de
grosses erreurs à corriger pour améliorer la vitesse??

PS: J'utilise des hlitrecherche sur d'autres fichiers pour renseigner les
noms en fonction des identifiants auto liés au fichier matériel, je ne
sais pas si c'est la bonne méthode d'ailleurs.

Merci d'avance


TableSupprimeTout(Table)
HLitPremier(MATERIEL)
TANTQUE PAS HEnDehors(MATERIEL)
HLitRecherche(LIEU,LIEUCLEUNIK,MATERIEL.LIEUCLEUNIK)
HLitRecherche(FAMILLE,FAMCLEUNIK,MATERIEL.FAMCLEUNIK)
HLitRecherche(ETABLISSEMENT,ETABCLEUNIK,LIEU.ETABCLEUNIK)
HLitRecherche(UTILISATEUR,UTILCLEUNIK,MATERIEL.UTILCLEUNIK)
HLitRecherche(ETAT,ETATCLEUNIK,MATERIEL.ETATCLEUNIK)
TableAjoute(Table,MATERIEL.IDENTIFIANT_INT+TAB+MATERIEL.MATCLEUNIK+TAB+FAMILLE.NOM+TAB+MATERIEL.DESIGNATION+TAB+ETAT.NOM+TAB+UTILISATEUR.NOM+TAB+LIEU.ETAGE+"
- "+ETABLISSEMENT.NOM+" -
"+LIEU.NOM+TAB+MATERIEL.NOMNETBIOS+TAB+MATERIEL.COMMENTAIRES)

HLitSuivant(MATERIEL)
FIN
Publicado em julho, 05 2005 - 4:27 PM
Est-ce que tu as essayé avec une requête/vue, plutôt que des hlitrecherche en cascade ?

Frédéric.
Publicado em julho, 05 2005 - 4:28 PM
Bonjour,

Dans les bases filles, tu recherche sur un identifiant par HLitRecherche()
Cette fonction recherche depuis le début jusqu'à quelle trouve la bonne valeur.

Pourquoi n'utilise-tu pas des index dans ces tables, et utilise HLitRecherchePremier() qui va se positionner directement au bon endroit.


Cordialement.

Tu peux aussi créer une requete pour effectuer cette opération.

C.AUBRY
Publicado em julho, 06 2005 - 5:54 AM
Merci de ces réponses intéressantes!! Pour info j'affiche dans cette table tout le matériel d'une société et après c'est l'utilisateur qui fait sa recherche sur ce qu'il veut mais je suis obligé de tout afficher!

Patrick.