Bonjour,
Dans le cadre de mon stage, je réalise un gestionnaire de cartes à puces.
J'ai de nombreux tableaux liés à des requêtes qui m'affichent les données nécessaires pour chaque fonctionnalités de l'application. Mon analyse est en HyperFileSQL C/S.
Sur mon poste tournant sous Vista, assez puissant, mes requêtes mettaient pas mal de temps à s'exécuter (entre 3 et 5 sec.), principalement une qui affiche un historique de toutes les opérations effectuées sur les cartes (7 ou 8 sec.).
J'ai installé l'application sur un poste moins puissant, tournant sous XP, et là l'ouverture des fenêtres contenant des tables fichiers liées à des requêtes sont extrêmement longues. Le temps ne se compte plus en secondes mais en minutes, voir plus pour mon historique (après 30 min d'attente, on a finalement arrêté le programme).
Pour remédier à ces lenteurs, j'ai exécuté mes requêtes (avec HOptimiseRequête puis HExecuteRequête) à l'initialisation de ma page d'accueil.
Sur mon poste, la différence de temps était notable. En effet, l'exécution de l'initialisation de la fenêtre, qui exécutait pourtant toutes les requêtes un peu longues, ne prenait que 2 ou 3 sec maximum et l'ouverture des fenêtres contenant les tables s'effectuait instantanément.
Je m'étais donc dit que si je laissais l'application ainsi, il ne faudrait que quelques minutes d'attente à l'ouverture sur un poste moins puissant et qu'ensuite, les fenêtres s'ouvriraient rapidement.
Le problème, c'est que ce n'est pas le cas.
J'ai installé ce matin l'application sur le même poste sous XP que précédemment, et là la page d'accueil se bloque. J'ai attendu une bonne vingtaine de minutes avant de rendre les armes.
Maintenant, j'essaye d'optimiser au maximum les requêtes à exécuter en permettant par exemple à l'utilisateur de choisir à l'ouverture de la fenêtre d'accueil les fonctionnalités du logiciel qu'il désire utiliser. A la validation, seules les requêtes correspondantes aux éléments choisis seront exécutées.
Y-aurait-il un moyen un peu moins barbare et plus simple d'accélérer l'exécution de mes requêtes (qui sont toutes optimisées au maximum) ?
Malgré mes recherches, je n'ai rien trouvé de concluant .
Merci d'avance,
Aenur.
Partager