PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → lenteur d'affichage
lenteur d'affichage
Débuté par mafatho, 21 oct. 2005 16:37 - 7 réponses
Posté le 21 octobre 2005 - 16:37
J'ai lu énormément de message posté dans ce forum, mais je n'ai pas trouvé la solution.

J'ai 2 applications (Windev 8) qui démarre très lentement. Dans la 1ere je rempli une table à partir d'un fichier (env. 1mn pour 150.000 enr.) et dans la 2e je rempli une liste avec une requete défini sous l'éditeur de requête (env 50s pour 100.000 enr).

Pour la 2e appli, l'index est bon et avec l'Analyseur (AnalyseurDebut, AnalyseurFin) je remarque que 90% du temp est utilisé par HExecuteRequete(). J'ai testé la requete dans l'éditeur et c'est très aussi lent. Et pourtant ce n'est qu'un select sur une table simple sans jointure.

Merci d'avance.
Posté le 21 octobre 2005 - 17:01
Est-ce que tu es obligé de remplir la table ? Une simple table fichier ne fait pas l'affaire ?
Après tout, 150000 enregistrement en 1 minute, ça fait tout de même 2500 par seconde. Suivant la taille de l'enregistrement, c'est peut-être normal.

Frédéric.
Posté le 21 octobre 2005 - 18:00
Salut !


On 21-Oct-2005, "mafatho" <mafatho@free.fr> wrote:

J'ai lu énormément de message posté dans ce forum, mais je n'ai pas trouvé
la solution.

J'ai 2 applications (Windev 8) qui démarre très lentement. Dans la 1ere je
rempli une table à partir d'un fichier (env. 1mn pour 150.000 enr.) et
dans la 2e je rempli une liste avec une requete défini sous l'éditeur de
requête (env 50s pour 100.000 enr).

Pour la 2e appli, l'index est bon et avec l'Analyseur (AnalyseurDebut,
AnalyseurFin) je remarque que 90% du temp est utilisé par
HExecuteRequete(). J'ai testé la requete dans l'éditeur et c'est très
aussi lent. Et pourtant ce n'est qu'un select sur une table simple sans
jointure.

Merci d'avance.



Sans doute un peu à cotéde la plaque, mais enfn ... tout fait farine au
moulin ..
Pour accélérer un peu les choses, tu pourrais mettreta table en
...affichageactif = faux pendant le chargement et la remettre en
...affichageactif = vrai, cela ne va rien changer en ce qui concerne la
requète,mais pour certains postes avec une carte graphique un peu lente,
cela peut faire gagner pas mal de temps ... en affichage seulement,
évidemment ...

Bon week-end !

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 21 octobre 2005 - 20:04
Bonjour,

pourquoi ne pas utiliser tout simplement une table fichier ==> ouverture
quasi instantanée.
Sinon si vous désirez conserver votre table mémoire deux solutions
possibles:

1) Rendre la table invisible le temp de son chargement (c'est
l'affichage qui ralenti beaucoup le traitement)

2) Utiliser un thread secondaire pour effectuer le remplissage de votre
table en arrière plan avec un simple message qui indique lorsque le
remplissage est terminé.

[DrCharly93] wdforge.org

mafatho a écrit :
J'ai lu énormément de message posté dans ce forum, mais je n'ai pas trouvé la solution.

J'ai 2 applications (Windev 8) qui démarre très lentement. Dans la 1ere je rempli une table à partir d'un fichier (env. 1mn pour 150.000 enr.) et dans la 2e je rempli une liste avec une requete défini sous l'éditeur de requête (env 50s pour 100.000 enr).

Pour la 2e appli, l'index est bon et avec l'Analyseur (AnalyseurDebut, AnalyseurFin) je remarque que 90% du temp est utilisé par HExecuteRequete(). J'ai testé la requete dans l'éditeur et c'est très aussi lent. Et pourtant ce n'est qu'un select sur une table simple sans jointure.

Merci d'avance.


Posté le 21 octobre 2005 - 20:30
Quel est l'intérêt de charger ces centaines de milliers de fiches au démarrage de l'appli ?
Posté le 22 octobre 2005 - 22:33
Une table fichier est plus rapide, mais la requet est pour eviter les doublons.
Y-a-t-il pas moyen d'afficher les 1000 premiers puis lire les 1000 suivant...
Posté le 22 octobre 2005 - 22:53
Je trouve ce genre de commentaire un peu deplacer. J'estime qu tout le monde a le droit de debuter et tout le monde a le droit d'etre a cote de la plaque.

J'utilise un autre logiciel de programmation, multi-plateforme (windows, unix et vms), qui permette de faire cela sans probleme et meme de lire et de les afficher par groupe de 100 ou par groupe de mille. Malheureusement cote Windows il est moins sympa.

L'affichage ne depend pas toujours de celui qui programme mais aussi de client et de ce qu'ila envie de voir.

Alors avant de dire n'importe quoi, il faudrait peut-etre se renseigner...
Posté le 23 octobre 2005 - 22:13
Bonjour,

Regardez voir dans l'aide au mot "Fetch partiel".
Il est possible de faire un transfert dans une table mémoire avec Fetch partiel.

Salutations.

ATGD.