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

VBA Access Discussion :

BDD Hyper lente et liaison des tables trop longue


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut BDD Hyper lente et liaison des tables trop longue
    Bonjour à tous,
    CI-joint ma BDD de test, mon problème est que si je clique sur le bouton changer de BE, ,
    - si mon fichier BE est sur mon PC= > temps mis : 0 sec
    - si mon fichier BE est sur le réseau de ma boite= > temps mis : 4 sec

    Or mon vrai projet à 35 tables, il met 75 secondes !!!!
    Y a t il un truc a améliorer ds le code ou est ce uniquement un pb réseau ? ( or on me dit :qu'il n'y a aucun pb de reseau ds la boite)

    Une fois le lien fait, il y a des lenteurs, quand même, un simple select * from une table peut mettre plus de 2 secondes !
    C'est désespérant !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Y a t il un truc a améliorer ds le code ou est ce uniquement un pb réseau ?
    Essaye avec des requêtes directs (pass through)
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  3. #3
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Les requêtes directes c'est pour que les requêtes soient exécutées directement sur le Back End ?
    Mais il va y avoir le transfert des data sur le front end alors ...
    C'est bien ça ?

    Ça remet tout en cause, il faut tout casser ???

    Et même si ça améliore les select , j'ai toujours la mise à jour de mes tables qui met 2 sec par table !

    Note : le code pour lier tes tables est du code que j'ai récupéré sur ce site


    Ma procédure de mise à jour des tables met 4 secondes pour lier 2 tables, ce n'est pas normal ?
    Est ce que ca peut être un pb réseau ?

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Bonjour,

    Je ne pense pas que faire des requêtes PassT pour un problème d'attachement résout quoique ce soit. Et surtout il faut m'expliquer comment on peut créer une telle requête avec un moteur fichier comme ACE.
    ACE n'est pas un moteur autonome.

    Ceci étant dit, c'est probablement un problème de longueur de chemin d'accès au Backend. Plus il est long plus l'accès est long. Il y a le tuto sur l'optimisation des applications Access sur ma page.

    On peut éventuellement travailler sur la méthode utilisée pour réaliser l'attachement, mais cela reste une solution à court terme. Puisque les requêtes souffriront du même handicap.

    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

  5. #5
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Je ne pense pas que faire des requêtes PassT pour un problème d'attachement résout quoique ce soit.
    Effectivement, je suis d'accord avec Loufab sur la question. Désolé, je n'avais pas regardé ta base avant de répondre.

    Il convient aussi de souligner qu'Access exécute les requêtes sur le client, et pour ce faire, il rapatrie la totalité de la table ou des tables du backend avant. Je pense que l'origine de la lenteur en est la source.

    Bon dev
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  6. #6
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Hello,
    Il faut donc que je tente de mettre ma BDD BE le plus haut possible de mon arborescence réseau , pour que je path soit le + court possible ?
    Cela va améliorer l'attachement aux tables + et les requête aussi ?
    C'est étrange.

    Loufab, quel tes le lien vers ta page qui parle de ca stp?

    Et question subsidiaire, si plusieurs utilisateurs doivent utiliser le Front end, il faut qu’ils aient en local , chacune la leur ? ou est il possible qu’ils utilisent le même front end qui est à dispo quelque part sur le réseau ?

    Merci.
    @+
    François

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    https://loufab.developpez.com/tutori.../optimisation/

    Chaque utilisateur à le Front sur son poste.
    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

  8. #8
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Salut Loufab,
    Merci pour le lien, je vais etudier tout ca !

    Par contre, je viens de tester, si je mets mon BE sur les chemins suivants; il met le même temps à lier les tables : 4/5 secondes pour 2 tables c'est beaucoup trop long !


    • \\TOTO\PROJET_NAME\2 - Suivi, reporting et analyse\dossier_test\new_projet_access_François\data\ Database51_be.accdb
    • \\TOTO\PROJET_NAME\8 - Outils\new_projet_access_François\Database51_be.accdb

    Le code que j'ai utilisé pour lier les tables vient de ce site, comme tu peux le voir dans mon fichier, je sèche

    Uns idée pour améliorer ce truc de liaison ?

    1 billon de mercis

  9. #9
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    pourquoi veux tu attacher les Tables?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql="Insert into TableLocal select  * FROM TableDistante in '\\Server\Rep\AccessDistante.accdb'"
    CURRENTDB.execute SQL

  10. #10
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    J'ai scindé ma bdd et si on a une nouvelle versions du Front End, j'ai un bouton pour recréer les lieux automatiquement et c'est ce truc qui est lent.

    Le code que tu me propose va insérer les data du BE sur le front end non ?
    Moi je veux lier les tables .

  11. #11
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Bonjour,
    si on a une nouvelle versions du Front End, j'ai un bouton pour recréer les lieux automatiquement
    Pourquoi ne pas lier les tables avant de déployer la nouvelle version sur les postes client ? Cela t'épargnerait d'avoir à développer un bouton dans ton application.
    Bon Dev
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  12. #12
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Salut,
    Je peux effectivement lier les tables avant de déployer mais c'est inquiétant quand même cette lenteur ?
    Ca ne cache ps un loup ?

    Loufab m'avait suggéré de mettre la BE plus haut das mon arborescence mis cela ne change rien .
    Les requêtes sont aussi plus lentes quad la BE est sur le réseau
    @+
    François

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Cette lenteur ne me surprend pas. J'ai déjà été confronté à ce type de problème et je l'ai toujours solutionné.
    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

  14. #14
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Loufab: en le solutionnant comment ?

    J'ai essayé de mettre la BE plus haut ds l'arbo et ca ne change absolument rien.

    Merci

  15. #15
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Bonjour,
    Quelle est la config matérielle de ton BE ?
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Citation Envoyé par bartimeus35 Voir le message
    Loufab: en le solutionnant comment ?
    En faisant un audit complet de la solution et de l'infra.
    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

  17. #17
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    ACE n'aime pas les chemins UNC. C'est marqué dans le tuto et dans plusieurs sources.

    Utilise plutôt un chemin vers une unité logique.

    A noter que ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      \\TOTO\PROJET_NAME\2 - Suivi, reporting et analyse\dossier_test\new_projet_access_François\data\ Database51_be.accdb
    ou ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        \\TOTO\PROJET_NAME\8 - Outils\new_projet_access_François\Database51_be.accdb
    c'est kif kif pour la longueur. Crée un partage directement sur ta ressource.

    Peut-être qu'un partage direct sur ta ressource peut améliorer les choses mais l'UNC avec sa méthode de résolution prend de toute façon plus de temps.
    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

  18. #18
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Salut, ACE c'est quoi ? ACE = ACCESS ?


    Utilise plutôt un chemin vers une unité logique.
    Je ne sais pas ce que c'est qu’une utilité logique.
    C'est une autre méthode d’attachement ?il y aurait du code à refaire ?
    J'avais simplement scindé me BDD avec l’outil d'Access et mis simplement le BE sur un serveur , ce qui me paraissait logique et enfantin .



    Crée un partage directement sur ta ressource
    Ca veut dire quoi ?

    Une dois que le lien est fait, l’utilisation est à peu près correcte, mais c'est vraiment ce lien qui est horrible à faire.

    @+
    François

  19. #19
    Membre habitué Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 503
    Points : 191
    Points
    191
    Par défaut
    Bonjour,
    Je viens de tester en mettant mon BE sur un truc du genre H:\ ou j'ai monté sur H 'endroit ou est me BE.
    Quand je mets à jour les tables via mon code, c'est toujours huper lent, mais un truc étonnant :
    Si je supprime dans le FE une par une les tables liées et si je fais DONNEES EXTERNES > nouvelle source de données et que je sélectionne mon BE sur H , il met 3/4 sec au total pour lier toutes mes tables au lieu de 4 sec par table avec mon code?.
    JE ne vois pas c que mon code peut faire de plus ...

    Note : mon code est ds le premier post et c'est un morceau de code que j'ai récupéré sur développez.net

    Any suggestion ?

  20. #20
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Il y a un net progrès tu sais maintenant ce qu'est une unité logique et tu as pu constaté par toi-même qu'elles donnent de meilleurs résultats qu'un chemin unc.

    Mise à part cela, dans ce code, tu mesures l'intégralité du process (manip du rst compris) alors qu'il faudrait que tu mesures chaque instruction de ton attache, ET UNIQUEMENT DE TON ATTACHE.

    Donc chacune des instructions suivantes et rien d'autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .Connect = ";DATABASE=" & strChmFichier
    .RefreshLink
    Je pense que tu vas être surpris par la 2ème instruction. Perso je la mettrais au rencard, elle n'a pas sa place dans une appli en prod.

    Je te laisse découvrir ça par toi même.

    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. [MySQL] Afficher le contenu d'une BDD et retirer l'une des tables
    Par piranha2209 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/12/2007, 17h22
  2. [VBA]Liaison des tables
    Par TLImpala dans le forum VBA Access
    Réponses: 7
    Dernier message: 17/04/2007, 10h48
  3. Securité - Bloquer liaison des tables -
    Par Sam 069 dans le forum Sécurité
    Réponses: 2
    Dernier message: 09/01/2007, 10h18
  4. Réponses: 2
    Dernier message: 06/10/2006, 10h16
  5. Réponses: 8
    Dernier message: 30/08/2006, 16h22

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