Shion_SEIYA
Messages postés24Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention17 mars 2010
-
13 oct. 2009 à 09:34
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 2010
-
15 oct. 2009 à 08:21
Salut à tous.
Je sollicite votre aide ou idées pour améliorer la rapidité de mon application.
Voici le contexte. Je fais une application Access pour un service d'une vingtaine de personnes. La difficulté est que ces personnes sont sur des sites différents et ont accès au réseau à distance.
Etant en direct sur le réseau, mon appli fonctionne instantanément ou quasiment, tout dépendant de la difficulté et du nombre de résultats à traiter.
Par contre dès que l'appli est utilisée via connexion distante au réseau, ça devient la misère en rapidité de traitement. (exemple: 1 min pour lier toutes les tables eb direct et 2 ou 3h à distance)
Mon souci est que je ne peux faire de table dédoublée avec mise à jour pendant la nuit car les données doivent être dispo rapidement. Auriez vous une idée?
Pour ma part j'ai pensée à un jeu de table annexe par site qui se mettrait à jour en tâche de fond tout en laissant accès à l'utilisation de l'outil. Est ce possible?
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 20101 13 oct. 2009 à 10:42
Salut,
Je ne suis pas un pro dans ce domaine mais une solution pourrait exister, en utilisant les DataSet de VB (vu qu'ils travaillent en mode déconnecté).
Tu pourrais récupérer TOUTE la base le matin par exemple, puis les employés travaillent avec pendant la journée puis les informations sont renvoyées le soir même.
Sinon, pourquoi pas créer une base par site qui se remplit la journée, pour la renvoyer vers la base commune le soir ? (elle aurait la même architecture que l'autre base, mais ses tables sont vidées chaque fois que l'upload est faite ?).
En gros tu pourrais soit travailler en mode déconnecté et tout balancer quand tout le service a fini de travailler, soit travailler en local et tout upload ensuite !
Shion_SEIYA
Messages postés24Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention17 mars 2010 13 oct. 2009 à 10:46
En fait, cette idée je l'ai eu mais comme je l'ai dis dasn mon premier message, il faut que els données soit dispo pour tout le monde à tout moment.
C'est pourquoi j'avais eu l'idée de BDD séparée masi avec mise à jour en tâche de fond en temps réél.
Mais je en sais pas si c'est possible.
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 20101 13 oct. 2009 à 11:34
Tu as toujours la possibilité soit d'utiliser soit un thread, soit un autre programme, soit un backgroundworker, dont la tache est de récupérer toutes les données distantes (en boucle et non-stop) puis de les acheminer vers la base en local.
Attention cependant à ne pas écraser la base locale à chaque sauvegarde sinon ça va effacer tt le travail effectué entre temps :p
Sinon ce qui fait que le temps est long, c'est le temps d'accès à la base ou le temps de traitement de la requête SQL ?
Shion_SEIYA
Messages postés24Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention17 mars 2010 13 oct. 2009 à 11:40
Et bien je me dis que vu qu'en local c'est quasi instantané (tout dépend du nombre de resultats analysés), je pense que c'est du au réseau malheureusement... C'est pour celà que je cherche quelquechose qui se fasse à part de l'appli...
Si je fais mon programme de report sur un fichier séparé, est ce que je peux le laner depuis l'appli??? (ouverture du fichier et lancement de fonction)
Par contre aussi, je demande pour une action en tâche de fond car en général, access est bloqué quand il est en execution... a moins que le fait d'ouvrir deux processus Access ne bloque pas le premier?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 20101 13 oct. 2009 à 11:45
Pour ce qui est de l'"action en tache de fond" je n'ai eu aucun problème avec ça. J'ai fait un logiciel qui sauvegarde les données dans une base d'historique tandis que la base "normale" est ouverte et ça marche. Pas de souci de ce côté là ;)
Après tu peux tout à fait lancer un logiciel depuis un autre programme. Il y a deux méthodes pour ça :
Shell("chemin du programme à lancer.exe") <== "ancienne" version
Ou
Dim Proc as Process
Proc.Start("chemin du programme à lancer.exe") <== "nouvelle" façon de faire
Shion_SEIYA
Messages postés24Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention17 mars 2010 14 oct. 2009 à 13:57
Et serait il possible de mettre ma base de données sur un serveur Internet sécurisé et de récupérer les informations dessus à partir de mon application Access?
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 20101 14 oct. 2009 à 14:34
Tout est possible :p
Il est possible de mettre ta base sur un serveur auquel tu accèdes via le web. Perso je n'ai jamais fait, mais je pense qu'il est possible de récupérer une base SQL par exemple..
Shion_SEIYA
Messages postés24Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention17 mars 2010 14 oct. 2009 à 14:37
oui mais c'est bien ce qui m'embete il faut la transformer en base SQL...
Je voulasi voir si je pouvais mettre mon fichier Access de BDD sur un serveur pour lier mes tables à mon appli...
Mais là ça me semble de la science fiction
cs_Papymuzo
Messages postés169Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention17 août 20101 15 oct. 2009 à 08:21
Oula oui :p
Enfin j'ai jamais fait ça..
Par contre, tu peux transférer ton fichier Access sur un serveur FTP et le récupérer de l'autre côté (par exemple avec un timer !).
Après, est-ce utile ?..
Sinon il doit exister des convertisseurs Access => SQL je pense..