PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Méthode la plus performante pour trouver un enregistrement ?
Méthode la plus performante pour trouver un enregistrement ?
Débuté par Dergen, 20 sep. 2018 22:26 - 4 réponses
Membre enregistré
329 messages
Popularité : +28 (32 votes)
Posté le 20 septembre 2018 - 22:26
Bonsoir,

Je dois (dans une boucle qui parcours un ensemble de fichier XML), rechercher pour certaine balises particulières des données complémentaire propre à chaque balise depuis une table ORACLE.

Si dans ma boucle j’execute (a chaque itération) ma requête parametrés, le programme est fortement ralenti par cette accumulation de requêtes.

J’ai cherché à optimiser le traitement en faisant en amont une requête globale et dans chaque itération de ma boucle, j’execute Un HRecherche afin de trouver mes données complèmentaire, il y a du mieux en terme de temps de traitement mais c’est loin d’etre folichon...

Avez-vous une idée qui me permettrait d’optimise ma boucle ?
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 21 septembre 2018 - 08:45
Un moyen que j'utilise dans ce genre de cas est le suivant :

Dans un premier temps je construis une chaine contenant les identifiants des lignes à extraire:
J'obtiens donc une chaine de type : LC_Liste = "25,32,63,93,etc"
A partir de là je fais ma requète d'extraction
LC_SQL = "select Champ1, Champ2 from MaTable where ID in (" + LC_Liste + "')"

Une fois la requète exécutée je construis un tableau avec les données récupérées
Le reste du traitement s'exécute en mémoire.
Membre enregistré
281 messages
Popularité : +24 (26 votes)
Posté le 21 septembre 2018 - 10:27
Bonjour,

Pourquoi ne pas stocker les résultats dans un tableau ?
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 21 septembre 2018 - 11:16
"Pourquoi ne pas stocker les résultats dans un tableau "

C'est ce que j'ai proposé.
Pour remplir le tableau il faut ne sélectionner QUE les valeurs utiles
Membre enregistré
329 messages
Popularité : +28 (32 votes)
Posté le 22 septembre 2018 - 23:34
Je sélectionne déjà les données utile avec ma requête paramètrés.

C’est la localisation dedans que je cherche à optimiser, parceque HRecherche est pas optimum dans une boucle.
Message modifié, 22 septembre 2018 - 23:36