Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/04/2004, 17h55   #1
Invité de passage
 
Inscription : mai 2002
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 4
Points : 0
Points : 0
Par défaut Évolution d’une application existante. Quel choix ?

Bonjour à tous,

Je vous soumets un sujet qui a déjà été débattu à mainte reprise, mais je souhaite définir la problématique avec laquelle je vis et en débattre. Le but est de collecter un max d’info pour soumettre un plant à mon président.

Nous sommes une PPE (petite petite entreprise) et quelqu’un à développé une application ACCESS (VBA et BD Access). Or avec le temps, l’application a grossi ET SURTOUT elle devient de plus en plus LENTE.

Le nombre d’utilisateurs est < 15 et le but est de gérer toutes nos activités relatives à la fabrication unitaire de machine (une machine par mois et en mode projet) . La bd (BackEnd en langage ACCESS) est sur le serveur et il y a une copie de l’application par PC.

Voici mes questions :
1) Quels est la possibilité de faire pour augmenter la vitesse ? Comment ? Pourquoi ?

2) Est-il judicieux de convertir le code VBA en Delphi par exemple ? (Il va falloir revoir l’ergonomie de nombreux écrans, donc . . . ) Comment ? Pourquoi ?

3) Si je passe par un changement de technologie, laquelle sélectionner ? Pourquoi ? Il y a un préjugé favorable pour Delphi, mais je suis ouvert à étudier d’autre(s) solution(s)

4) Tous autres points qu’il est important de discuter . . .

5) Quels sont les coûts associés à ces technologies ?

D’avance, je remercie tous les participants.
Bonne journée.

B

BBerni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2004, 22h28   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
1) Quels est la possibilité de faire pour augmenter la vitesse ? Comment ? Pourquoi ?
En vrac pour ce point:
1/ augmenter le débit du réseau si c'est possible (si vous êtes en ethernet 10Mb, passez au 100 Mb -> changer les cartes et autres matériels)
2/ augmenter la capacité du serveur (processeur, mémoire, HD+rapide)
3/ purger la BD
4/ optimiser le code

Maintenant, le pourquoi de tout ça ne peut venir qu'après connaissance + fine des éléments mis en cause ci-dessus (topologie réseau, architecture de l'appli, etc...)

Citation:
2) Est-il judicieux de convertir le code VBA en Delphi par exemple ? (Il va falloir revoir l’ergonomie de nombreux écrans, donc . . . ) Comment ? Pourquoi ?
Ca ne peut être qu'un choix d'entreprise.... ou pour se faire plaisir 8)
Cela dépend de l'appli actuelle. Par exemple si elle fait beaucoup de calculs, ça peut valoir le coup (cf l'accueil Delphi et le test "contre" VB).
Une solution de repli consisterait à changer "simplement" le SGBD.

Citation:
3) Si je passe par un changement de technologie, laquelle sélectionner ? Pourquoi ? Il y a un préjugé favorable pour Delphi, mais je suis ouvert à étudier d’autre(s) solution(s)
Vaste sujet!
Tout dépend des compétences qui seront mises en oeuvre (internes vs. s/traitance) => et aussi du taux de maintenance de l'appli, du besoin de réactivité en cas de pb ou d'évolution, de la capacité d'apprentissage des compétences internes si elles sont retenues (résistance au changement, fracture technologique, etc...). bref autant de choses qui ne coulent pas forcément de source dans une PPE
Quant au langage, pourquoi pas Delphi. Je lui trouve le mérite de structurer suffisament les développements tout en bénéficiant d'un excellent niveau de support.

Pour le point 4: demande une rallonge

Et pour le 5, visite obligatoire sur les sites des fournisseurs !

Voilà, j'espère avoir éclairé un peu ta lanterne.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2004, 10h46   #3
Membre actif
 
Inscription : mars 2002
Messages : 127
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 127
Points : 154
Points : 154
Citation:
Nous sommes une PPE (petite petite entreprise) et quelqu’un à développé une application ACCESS (VBA et BD Access). Or avec le temps, l’application a grossi ET SURTOUT elle devient de plus en plus LENTE.
Access n'est pas fait pour travailler en client-serveur me semble-t-il, du coup si ta base fais 100Mb chaque utilisateur importe chez lui 100Mb sur le réseau à chaque accès (consultation/modification) à la base.

Augmenter le débit réseau est une solution mais à court-moyen terme c'est rebelotte.
Augmenter la capacité du serveur Access n'y étant pas exécuté je vois mal ce que ça va changer.
Purger la BD permet de diminuer la taille de la BD, toujours uns solution à court-moyen terme.
Optimiser le code, mouais, avec les PC actuels tu auras plus un gain en seconde qu'en minute..

Moi je t'encouragerai plutôt vers un redéveloppement en client-serveur ou un portage de l'appli Access sur Intranet.
Marmot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2004, 14h32   #4
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
Augmenter la capacité du serveur Access n'y étant pas exécuté je vois mal ce que ça va changer.
Simplement qu'en fonction des caractéristiques du serveur actuel qui dépendent de son ancienneté, on peut arriver à gratter 10 ou 20 % de perf en plus:
- temps d'accès du HD
- mémoire tampon du HD (buffer)
- technique de l'interface du HD (IDE // E-IDE // ATA // SCSI) permettant d'atteindre du haut débit de transfert

mais, la carte-mère ne doit pas être en reste quant à sa capacité à acheminer les données lues (largeur du bus) vers le processeur (nb de cycle d'horloge pour traiter 1 mot) puis vers la RAM pour stockage avant la confection des paquets Ethernet à expédier vers le demandeur.

Bien sûr que ça ne rajeunit pas 1 appli qui vieillit mal, juste ça aide, et ça répond en partie à la question n°1...
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2004, 14h48   #5
Expert Confirmé
 
Inscription : avril 2002
Messages : 3 339
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2002
Messages : 3 339
Points : 3 352
Points : 3 352
Citation:
Envoyé par Marmot
Access n'est pas fait pour travailler en client-serveur me semble-t-il, du coup si ta base fais 100Mb chaque utilisateur importe chez lui 100Mb sur le réseau à chaque accès (consultation/modification) à la base.
Ca c'est une idée recu, tu ne transfert pas toute la base à chaque Accès !
Et heuresement !

Access possède des lacunes sur la partie transactionelle, mais tu peux très bien faire du "client-serveur" quoi que le terme soit galvaudé, c'est un SGBD fichier.

Maintenant concernant les axes d'évolutions, effectivement agir du coté machine via l'accès aux disques durs, le réseau c'est une solution simple quoi que à mon avis peu efficace et qui trouvera vite sa limite.

Pensez coté nouveau developpement, là par contre tu dois pouvoir faire des trucs sans te ruiner.

Passer à VB6 avec une base MySQL par exemple.
Pourquoi ce choix :
MySQL est gratuit et supportera largement la volumétrie que tu enonces.
Les couts de migration de Access à VB6 seront minimes etant donné la similitude qu'il peut y avoir entre les deux langages, il y aura surement pas mal de chose à revoir mais dans l'ensemble les codes seront similaires.

Delphi est effectivement un bon choix, car c'est un produit puissant et assez optimisé pour la gestion de base de données, attention tout de même Delphi 8 necessite de connaitre .NET
Pour ton cas, je pense que Delphi est peut-etre de la grosse artillerie.

Coté Base de données, si tu veux passer à des bases qui inclus la gestion des transactions ou les requetes imbriquées, la solution logique pour VB est SQLServer.
Admin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2004, 16h55   #6
Membre actif
 
Inscription : mars 2002
Messages : 127
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 127
Points : 154
Points : 154
Citation:
Ca c'est une idée recu, tu ne transfert pas toute la base à chaque Accès ! Et heureusement !
Ah, ok, pour éviter que je ne propage d'autres idées reçues sur Access (97-2000) tu pourrais me renseigner une doc (même en anglais) qui fait le point sur ce qui transite sur le réseau qunad j'interroge une BD Access ?

Merci
Marmot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2004, 19h57   #7
Expert Confirmé
 
Inscription : avril 2002
Messages : 3 339
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2002
Messages : 3 339
Points : 3 352
Points : 3 352
Là franchement tu me poses une colle !
Admin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2004, 16h40   #8
Invité de passage
 
Inscription : mai 2002
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 4
Points : 0
Points : 0
Bon, je suis de retour . . . et merci pour les réponses.

Optimiser le matériel (réseau, serveur, etc), oui, mais je pense que la limite sera vite atteinte, car j’ai fais un test avec tout sur ma machine, et je ne vois pas de miracle (Je suis à Montréal pas à Lourde. Eh . . . )

MySQL : je viens de lire dans « Control Engineering » avril 2004, que la compagnie propriétaire viens de modifier les licences d’utilisations et qu’il y a bien des utilisateurs qui se sont fait piéger!!!

Je me méfie des choses qui sont gratuites. VB aussi est « gratuit » mais tu payes à l’utilisation (c’est lent est les utilisateurs sont payés pour attendre, les modifications plus ou moins compliquées, etc.) En plus de te retrouver dans la « prison » MS.

Delphi : je pense à Delphi, car nous avons Delphi 6 et que j’en ai une relative bonne connaissance, en plus d’avoir codé pendant plus de dix ans en C++ dans le domaine de l’automatisation. Et aussi du système expert G2 (gensym.com) Dans ma stratégie de conversion, je pense faire la migration module par module.

Après la lecture de vos réponses, je peux dire que la base est composée de ~50 tables (pas toujours normalisées) et utilise beaucoup de requêtes. Le tout est composé de 3 modules : le module avec les tables (50M), et ensuite les 2 modules App1 (11M) et App2 (14M).

Bonne journée.
BBerni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 09h33   #9
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
Tu as tort de te méfier de tout ce qui est gratuit : la plupart des technologies open source sont gratuites et sont fiables et très utilisées. Mais c'est un autre débat.

Sinon en terme de BD pourquoi pas MSDE ? C'est la version light (et gratuite ) de SQL Server, donc Access devrait pouvoir travailler avec très facilement.

D'autre part, tu peux toujours utiliser Access comme interface qui s'appuie sur une autre BD client/serveur, comme par exemple MySQL ou PostgreSQL via leur driver ODBC.

Quand Access travaille avec une BD client/serveur il n'y a aucun problème de charge réseau puisqu'on travaille en mode c/s.

Cependant Delphi est un très bon choix aussi.
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 10h59   #10
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Citation:
Envoyé par ovh
Sinon en terme de BD pourquoi pas MSDE ? C'est la version light (et gratuite ) de SQL Server, donc Access devrait pouvoir travailler avec très facilement.
Ben simplement parque que MSDE est fait pour 5 utilisateurs concurrents et pas 15

Par contre, l'idee de ne passer dans un premier temps que la partie serveur sur un SGBDR meilleur que le JetEngine de Access est bonne et a moindre cout (mais il faudra quand meme repasser a travers l'appli pour gomer les specificites Access et rendre le code plus performant, par ex en utilisant des procedures stockees).
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web