Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lenteur remplissage de table (62000 enregistrements)

31 réponses
Avatar
Dams
Bonjour,

je rencontre une lenteur =E9norme lors du remplissage de ma table
(environ 32 secondes) qui contient des clients, rien de plus
classique.

Mon fichier CLIENTS contient 62000 enregistrements, et je rempli ma
table par programmation. Au dessus de ma table il y a des Onglets
alphab=E9tiques permettant =E0 l'utilisateur de filtrer les clients (A, B,
C, D ...) chaque onglet contient une lettre donc je construit mon
filtre en fonction de l'onglet s=E9lectionn=E9.



PROCEDURE RefreshClients()

// Je vide la table
TableSupprimeTout(TABLE_CLIENTS)

// Je r=E9cup=E8re la lettre s=E9lectionn=E9e dans l'onglet s=E9lectionn=E9
sLettre est une chaine =3D ONG_FILTRE[ONG_FILTRE]..Libell=E9

// Je cr=E9=E9 mon filtre sur les clients contenant la lettre s=E9lectionn=
=E9e
// sRubParcours contiendra la rubrique retourn=E9e automatiquement pour
la parcours
sRubParcours est une chaine =3D HFiltre(CLIENTS, "NOM LIKE '"+sLettre
+"%'")

// Je lit le premier client trouv=E9
HLitPremier(CLIENTS, sRubParcours)

// Je boucle sur tous les clients et je rempli ma table
TANTQUE HTrouve(CLIENTS)
TableAjouteLigne(TABLE_CLIENTS, CLIENTS.NOM, CLIENTS.PRENOM,
CLIENTS.SOCIETE)
HLitSuivant(CLIENTS)
FIN

// Je d=E9sactive le filtre cr=E9=E9
HD=E9sactiveFiltre(CLIENTS)



Le remplissage de la table dure environ 32 secondes !! Pour un simple
remplissage comme celui-ci.

Ma question est de savoir si d'apr=E8s vous je m'y prend mal pour
remplir ma table, pourtant j'utilise des filtres pour =E9viter de
charger TOUTES les donn=E9es, ou alors c'est Windev qui est limit=E9.

D'avance merci.

1 réponse

1 2 3 4
Avatar
Dams
Salut Victor,

merci pour toutes ces réponses, j'ai enfin réussi à optimiser tout
cela en :

1. Liant ma table au fichier (En mémoire) directement (Plus de
remplissage manuel)
2. Quand l'utilisateur change d'onglet alphabétique, j'utilise ta
syntaxe de HFiltre avec les bornes et effectivement je m'y retrouve à
présent !!

HFiltre(CLIENTS, NOM, sLettre+hValMin, sLettre+hValMax)

Est beaucoup plus performant que mon :

HFiltre(CLIENTS, "NOM LIKE '"+sLettre+"%'")

Bon dev !
Dams
1 2 3 4