Message de rapport:
 

[Résolu] Boucle et exécution nombreuse de requêtes

Sujet: [Résolu] Boucle et exécution nombreuse de requêtes
par R&B sur 20/10/2006 11:30:23

Bonjour

Je travaille sur un outil statistique qui lit des données dans des fichiers à gros volume (3 fichiers de 2Go).

J'ai donc une boucle qui parcour une vue au sein de laquelle :
Je fait des hlitrecherche dans 3 fichier
J'exécute 2 requêtes de cumul sur une période pour un code dans des fichiers pour lesquels la date et le code sont des clés.
Pour éviter les fuite de mémoire, aucune déclaration de mémoire n'intervient dans la boucle

Chaque boucle execute donc :
3 hlitrecherche (recherches génériques)
2 hexecuterequeteSQL (et lecture de premier et unique enregistrement du résultat)
Un affichage de chronométrage et de jauges

Le disque est libéré à 50% et défragmenté

Passé 600 boucles, le temps d'excécution (mesuré en moins d'un ou 2 centièmes de secondes par boucles) s'éffondre subitement et l'exécution des requêtes prends alors plusieurs dizaines de secondes et cela va en empirant.

J'ai rallongé le seuil des 600 boucles (400 au départ) en :
- fermant les fichiers et libérant les sources de données tous les 100 boucles
- supprimant la gestion du calcul du temps restant (voir exemples WD jauges)

Je ne sais plus vers quoi m'orienter à présent pour conserver un temps d'exécution par boucle constant.

ci joint le code d'exécution des requêtes
HAnnuleDéclaration(sSQL)
SI HExécuteRequêteSQL(sSQL,hRequêteSansCorrectionHF+hAvecFiltre,ChaîneConstruit(cSQLStock,cCCODE,DATEMIN,DATEFIN)) ALORS
	SI HLitPremier(sSQL) ALORS
		nQte+=sSQL.QTE
	FIN
FIN
HAnnuleDéclaration(sSQL)[code]
Il semble que l'utilisation du filtre (à la place des vues) et le fait de ne pas activer la correction HF soit un vecteur qui accroit les performances...

Existe-t il alors un mode d'exécution optimal pour les requetes du types : 
[code]SELECT SUM(RUBQTE) AS QTE FROM FICHIER WHERE RUBCODE='...' AND RUBDATE BETWEEN 'D1' AND 'D2'

En effet ces requêtes ne retourne qu'une ligne non modifiable...

Merci d'avance aux experts des requêtes avec HF
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2