IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Problème de lenteur sur base access


Sujet :

Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Problème de lenteur sur base access
    Bonjour,

    J'ai une base Access partagée avec les données sur un serveur et la partie front sur les poste utilisateurs.
    La base fait 80 mo, le front en fait autant, environ 200 tables de données, de 1 à 8 utilisateurs connectés en simultané.
    Il se trouve que pour certain formulaires ou/et certains postes utilisateurs j'ai des lenteurs.
    J'essaye d'optimiser les requêtes, le code VBA, les formulaires mais certaines lenteurs persistent.

    Je cru comprendre que Access pouvait être à la peine avec des bases trop grosses ou trop de table ou trop d'utilisateurs...
    Voir même qu’il pouvait se comporter de manière bizarre

    Je me demandait si le fait de passer les données en MySql ou une autre SGBD pourrait améliorer la situation ?

    Quelle votre avis, votre expérience ou vos conseils en la matière svp ?

    Merci de votre aide
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    À priori tu es dans les limites de Access.

    Quelques sources de ralentissement dans les formulaires sont :
    • Les listes déroulantes.
      Quand tu ouvres un formulaire Access charge TOUTES les listes déroulantes et si tes listes comportent beaucoup d'éléments ça peut être long.
    • Les sous-formulaires.
      Là aussi Access charge toutes les données qu'il pense que tu voudras voir (mais pas forcément TOUTES les données).


    L'astuce principale est d'avoir un formulaire "sans données" et de ne charger que ce dont tu as besoin au moment où tu en as besoin.
    Par exemple pour une liste seulement quand elle reçoit le focus.
    Pour un sous-formulaire n'assigner la source que quand il est visible (cas par exemple ou tu as un contrôle onglet).

    Un autre truc serait de laisser une table ouverte en permanence pour obliger Access à garder la liaison avec la BD dorsale ouverte. Par exemple ouvrir un recordset sur une table de paramètres (dans un formulaire splash caché par exemple). J'ai mis serait car mon expérience avec cela n'a pas été des plus concluante.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci de ton aide marot,

    Selon toi, je devrais envisager de travailler avec MySql ou SQL Qerver par exemple ?
    Ou je peux me contenter d'access ?

    Merci
    Les solutions les plus simples sont les plus efficaces

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Selon toi, je devrais envisager de travailler avec MySql ou SQL Qerver par exemple ?
    Je manque un peu d'info pour répondre péremptoirement Oui ou Non, de ce que tu décris une solution en Access semble raisonnable.

    Aller vers MySQL ou SQL Server ajoute de la complexité car cela nécessite un serveur de BD, de faire tes back-up en suivant les procédures de ces BDs (pas un simple copier du fichier), bref ajouter un rôle de DBA (Database Administrator, Gestionnaire de Base de données) à ton équipe.
    MySQL semble moins exigeant que MS SQL Server mais c'est tout de même des tâches supplémentaires.

    MySQL est gratuit, je crois, vérifie les licences.
    Pour MS SQL Server, il y a MS SQL Express Edition qui est limité, autant que je sache, entre autre à 10 go et gratuit.
    Si tu veux un "vrai" MS SQL Server il y a des frais de licence. Les Tarif de M$ changent constamment donc voir avec eux pour les prix.

    Et il faudra que tu modifies ton appli existante puisque ni l'un ni l'autre ne fonctionne exactement comme Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    En effet il y a 2 licences Mysql, payante et gratuite. Mais il y a aussi de forks comme Mariadb qui fonctionne très bien.

    SqlServer en version gratuite j'en était resté à 4go maxi. Pour faire des export/transfert/migration tu as les produits Bullzip qui font le job. Je les utilise avec succès.

    Concernant les lenteurs tu as un tuto sur le sujet, des fois ça tient à peu de chose.

    https://loufab.developpez.com/tutori.../optimisation/

    Perso j'utilise Mysql en local (pour le dev), sur un serveur (un vieux portable) et en ligne. ça marche plutôt bien pour l'instant. Il y a même certains naas (synology) qui embarque un Mysql/mariadb.


    Cependant au niveau dev il y a des choses à faire qui peuvent être plus ou moins complexes, tout dépend de comment on a créé l'application.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci
    Merci pour votre aide,
    Je reste sur Access. Passer à MySql est trop lourd pour moi. J'ai déjà amélioré des choses en suivant vos conseils, notamment ne charger les listes qu'à la prise de focus par exemple. Il m'arrive aussi d'utiliser les fonctions de regroupement de domaine et je m'aperçois que c'est à la fois pratique mais aussi très pénalisant dans certains cas.
    Merci encore de votre aide
    Les solutions les plus simples sont les plus efficaces

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Oui les fonctions de domaine sont super pratiques mais aussi hyper pas efficaces.

    Les remplacer par du SQL est bien plus performant même si plus compliqué à écrire.

    Aussi si c'est possible, tu peux faire des tables temporaires pour stocker certains résultats. C'est à manipuler avec précaution, les tables ne se mettent pas à jour en cas de modif, mais cela peut améliorer sérieusement tes performances. Access au lieu de tout recalculer n'a qu'à lire la valeur ce qui va plus vite et souvent le pré-calcul est assez rapide.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    On peut remplacer les fonctions de domaines par des fonctions utilisateurs. ça reste trivial à faire.
    Au final ça ne reste que du SQL qui est exécuté par le moteur sgbd.

    Pas contre utiliser des fonctions de domaines dans des requêtes, ça reste des requêtes imbriquées.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. problème avec SUM(Distinct champ_x) sur base access
    Par walid_kerkoub dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/09/2009, 16h14
  2. problème update sur base access
    Par Ludosjob dans le forum ASP
    Réponses: 4
    Dernier message: 01/09/2008, 21h16
  3. Problème sur base Access Fractionner
    Par nefertari dans le forum Modélisation
    Réponses: 5
    Dernier message: 25/06/2008, 09h01
  4. Problème de lenteur sur base Access 2003
    Par pgloire dans le forum Modélisation
    Réponses: 5
    Dernier message: 02/04/2008, 19h51
  5. Réponses: 1
    Dernier message: 04/04/2006, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo