Rapidité Access sur Serveur distant...

Shion_SEIYA Messages postés 24 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 17 mars 2010 - 13 oct. 2009 à 09:34
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 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?

Merci à tous pour vos idées et aide

9 réponses

cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
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 !


Enfin, après ce ne sont que des idées :p
0
Shion_SEIYA Messages postés 24 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 17 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.
0
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
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 ?
0
Shion_SEIYA Messages postés 24 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 17 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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
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
0
Shion_SEIYA Messages postés 24 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 17 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?
0
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
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..
0
Shion_SEIYA Messages postés 24 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 17 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
0
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
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..

PS : Fais moi signe si tu trouves une solution !
0
Rejoignez-nous