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 :

perf dans les choux


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut perf dans les choux
    Bonjour,

    j'ai une appli avec des tables liées un peu partout qui devient très lente d'exécution dès lors que le nombre d'utilisateurs augmente. environ 15.

    Je vais essayer de détailler:
    sur le réseau, j'ai une base B1 avec des tables allant de 20 000 enregistrements à 100 000 par table. Ces tables sont utilisées en lecture.
    J'ai une autre base B2 sur le réseau avec des tables plus légères (maxi 20 000 enreg en fin de journée) dans lesquelles j'insère des données.

    J'ai la base appli dupliqué sur chaque poste des utilisateurs. 15 copier/coller de l'appli. La base comprends uniquement 3 tables en local et les tables des bases B1 ert B2 en tables liées.

    L'appliest composé:
    d'un form principal
    qui ajoute des données dans les tables local.

    de 2 sous form
    1er ss form : Affiche des données présente dans la base B1
    2eme ss form Affiche des données présente dans la base B1

    D'un boutton qui insère des données dans la base B2.


    Les ralentissements:

    Les deux ss form sont très long à s'afficher lorsque plusieurs utilisateurs travaille sur les tables de B1. Ceux ci sont raffraichi très souvent (donc a chaque rafraichissement --> lenteur).

    Quand j'insère dans la base B2 parfois ça met 2 minutes à s'exécuter!!


    Requetes :

    R1 (Affiche dans le ss form 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Union - Transaction].ref_numero, [Union - Transaction].ref_nom, [TRV - Evénements DEVON].*
    FROM [TRV - Evénements DEVON] LEFT JOIN [Union - Transaction] ON ([TRV - Evénements DEVON].Code = [Union - Transaction].Transaction_numero) AND ([TRV - Evénements DEVON].Evénement = [Union - Transaction].nom_evenement) AND ([TRV - Evénements DEVON].Application = [Union - Transaction].application);
    Union - Transaction est en fait une autre requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT [Rap - Transaction].Transaction_numero, [Rap - Transaction].nom_evenement,[Rap - Transaction].ref_numero,[Rap - Transaction].ref_nom,[Rap - Transaction].application
    FROM [Rap - Transaction]
    union
    SELECT [Rap - Transaction controle].Transaction_numero, [Rap - Transaction controle].nom_evenement,[Rap - Transaction controle].ref_numero,[Rap - Transaction controle].ref_nom,[Rap - Transaction controle].application
    FROM [Rap - Transaction controle]
    UNION SELECT [Rap - Transaction centrale].Transaction_numero, [Rap - Transaction centrale].nom_evenement,[Rap - Transaction centrale].ref_numero,[Rap - Transaction centrale].ref_nom,[Rap - Transaction centrale].application
    FROM [Rap - Transaction centrale];
    R2 Affiche dans le ss form 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [PC - 01].ref_nom, [PC - 01].ref_numero, [TRV - Ecritures Sysco].*
    FROM [TRV - Ecritures Sysco] LEFT JOIN [PC - 01] ON [TRV - Ecritures Sysco].[Référence ligne] = [PC - 01].numero_ligne_comptable;
    et PC 01:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT [Rap - Ligne Comptable].numero_ligne_comptable, [Rap - Ligne Comptable].ref_numero, [Rap - Ligne Comptable].ref_nom
    FROM [Rap - Ligne Comptable] 
    union
    SELECT [Rap - Ligne Comptable Controle].numero_ligne_comptable,  [Rap - Ligne Comptable Controle].ref_numero, [Rap - Ligne Comptable Controle].ref_nom
    FROM  [Rap - Ligne Comptable Controle]  
    UNION SELECT [Rap - Ligne Comptable Centrale].numero_ligne_comptable,  [Rap - Ligne Comptable Centrale].ref_numero, [Rap - Ligne Comptable Centrale].ref_nom
    FROM  [Rap - Ligne Comptable Centrale];

    R3 requetes d'insertions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.Execute "INSERT INTO [Rap - Entete Controle] SELECT * FROM [Rap - Entete] WHERE ref_numero= " & ref_number.Value & " and ref_nom='" & ref_name.Value & " ';"
    Pensez-vous que cela vient du réseau ? du fait d'avoir des tables liés allant jusqu'a 100 000 enreg ? du nombre d'utilisateurs ? ou des requetes ?


    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    C'est un tout les 15 utilisateurs et le reste personnellement il faut passer à un autre système style SQL SERVEUR, à mon avis tu es à la limite d'Access.

    Starec

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Starec
    Salut,

    C'est un tout les 15 utilisateurs et le reste personnellement il faut passer à un autre système style SQL SERVEUR, à mon avis tu es à la limite d'Access.

    Starec
    Tu crois vraiment que 100 000 enregistrements, c'est la limite d'Access ?

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    100000 enregistrements et 15 utilisateurs ... ça fait déjà beaucoup

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Tofalu
    100000 enregistrements et 15 utilisateurs ... ça fait déjà beaucoup
    aie aie aie ...
    Bon... Ya t-il quand même la possibilité d'améliorer quelque chose ?
    Les requêtes? le code ? merci

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    salut,

    je sais plus exactement où c'est et j'ai pas access sous la main mais il y dans le menu "utilitaire de base de données" je crois une analyse de la base qui te dit où il manque des index...

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par _developpeur_
    Citation Envoyé par Tofalu
    100000 enregistrements et 15 utilisateurs ... ça fait déjà beaucoup
    aie aie aie ...
    Bon... Ya t-il quand même la possibilité d'améliorer quelque chose ?
    Les requêtes? le code ? merci
    Oui change de SGBD

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Arkham46
    salut,

    je sais plus exactement où c'est et j'ai pas access sous la main mais il y dans le menu "utilitaire de base de données" je crois une analyse de la base qui te dit où il manque des index...
    Pas trouvé

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Tofalu
    Citation Envoyé par _developpeur_
    Citation Envoyé par Tofalu
    100000 enregistrements et 15 utilisateurs ... ça fait déjà beaucoup
    aie aie aie ...
    Bon... Ya t-il quand même la possibilité d'améliorer quelque chose ?
    Les requêtes? le code ? merci
    Oui change de SGBD
    Impossible, projet en cours... Avec des échéances ...

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    en fait c'est dans : outils -> analyses -> performances

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Arkham46
    en fait c'est dans : outils -> analyses -> performances
    OK merci, ni dans les tabels ni dans les requetes, Acces ne m'a rien proposé pour améliorer les perfs

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Je ne crois pas que l'assistant d'analyse marche sur les requêtes lancées en VB par contre....
    En gros il faut essayer de mettre des index sur les clés de recherche et sur les clés de jointure.

    Les deux ss form sont très long à s'afficher lorsque plusieurs utilisateurs travaille sur les tables de B1. Ceux ci sont raffraichi très souvent (donc a chaque rafraichissement --> lenteur).
    Est-ce que tu forces un [requery] dans le code? Dans ce cas y a t'il de nouveaux enregistrements à lire ou des enregistrements supprimés? Sinon le [refresh] suffit peut-être?
    Y a des index sur les champs fils?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Arkham46
    Je ne crois pas que l'assistant d'analyse marche sur les requêtes lancées en VB par contre....
    En gros il faut essayer de mettre des index sur les clés de recherche et sur les clés de jointure.

    Les deux ss form sont très long à s'afficher lorsque plusieurs utilisateurs travaille sur les tables de B1. Ceux ci sont raffraichi très souvent (donc a chaque rafraichissement --> lenteur).
    Est-ce que tu forces un [requery] dans le code? Dans ce cas y a t'il de nouveaux enregistrements à lire ou des enregistrements supprimés? Sinon le [refresh] suffit peut-être?
    Y a des index sur les champs fils?
    Merci,
    J'ai des index (avec ou sans doublons) sur les clés recherches et jointures, je peux pas faire mieux.

    En effet je force un requery dans le code. Oui il y a de nouveaux enregistrements dans les tables "Controle", donc le faut réexécuter la requete pour refaire la jointure.

    Merci beaucoup. Je vais voir si je ne peux améliorer les SQL en VB (vu qu'elles ne sont pas vérrifer dans l'analyse) mais il ne devrai pas en avoir beaucoup car en général j'essai d'utiliser les requêtes que je crée au préalable dans Access.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Je me permet de revenir à ce sujet car j'envisage actuellement de migrer mes bases access vers MySQL.
    Est-il possible de conserver mes macros, formulaires VB et me connecter à une base Mysql via un lien ODBC ?

    Je veux demande cela car dans une vie intérieur j'ai connecter Visual Basic 6.0 à Mysql. Seulement je ne sais pas si avec VBA, on peut le faire.

    Merci de votre aide

Discussions similaires

  1. Lecteur CD dans les choux
    Par websolo dans le forum Windows XP
    Réponses: 6
    Dernier message: 22/10/2007, 19h25
  2. Connexion RFC dans les choux
    Par Sfatou dans le forum SAP
    Réponses: 2
    Dernier message: 25/05/2007, 09h40
  3. Google Adsense dans les choux
    Par ArHacKnIdE dans le forum Dépannage et Assistance
    Réponses: 5
    Dernier message: 28/05/2006, 10h43

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