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

Requêtes et SQL. Discussion :

Base de données trop lente


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Base de données trop lente
    Bonjour à tous,
    j'ai une base de donnée Access qui est composée de 13 tables, 9 requêttes, un formulaire et un sous formulaire sa taille est de 1524 Ko.

    Mon souci est que qaund je lance le formulaire je doit attendre au moins 10-15 minutes min et achaque manipulation ça tourne en rond, du coup ça m'avance pas sur le sujet de mon stage!!
    Donc ma question est ce que on peut pas acceléer la vitesse d'excution du formulaire? et Comment?
    NB : Sachant que je débute Access, l'indexation est faite pour toutes les tables.
    J'ai une autre question qui est un peu lié je vous afficher un graphique lié au formulaire qui change une fois qu'en change de client en apuiyant sur un bouton.

    je vous remercie beaucoup d'avance, votre contribution me sera d'une grande utilité.

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

    Un seul tuto : http://loufab.developpez.com/tutorie.../optimisation/

    Cordialement,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Bsea de Donnée trop lente
    Je vient de lire le tuto, j'ai fait le compactage mais rien a changé grand chose le temps d'attente est tjrs le même:weird
    :
    Je peux mettre le sql de la requêtte du formulaire

  4. #4
    Modérateur

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

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

    As-tu découpé ta base en Frontale (formulaires, code, états, requête, etc.) /Dorsale (juste les données) avec la frontale sur le poste client et la dorsale sur le réseau ?

    Est-ce que si tu ouvres directement tes tables, tu as un problème de vitesse ?

    Est-ce que si tu ouvres directement la source de données de ton formulaire, tu as un problème de vitesse ?

    Est-ce que ton formulaire comprend beaucoup de listes déroulantes ou des listes déroulantes avec beaucoup de lignes ?

    Est-ce que tu utilises des listes pour afficher tes données au lieu d'utiliser des sous-formulaires ?

    Est-ce que ton formulaire affiche des images ?

    Pour intégrer le SQL, il faudrait que tu précises où tu veux le mettre. Est-ce la source du formulaire ? D'une liste ? D'un sous-formulaire ?

    A+

  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 017
    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 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Citation Envoyé par Rafa35 Voir le message
    Je vient de lire le tuto, j'ai fait le compactage mais rien a changé grand chose le temps d'attente est tjrs le même:weird
    :
    Je peux mettre le sql de la requête du formulaire
    Compactage ?! tu t'es arrêté au paragraphe II-B donc...

    Mise à part le VIII, dont je te fais volontiers grâce, tous sont important.

    Oui mettre la requête serait un bon début, sinon on risque d'y passer plus de temps que le chargement de ton formulaire.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    As-tu découpé ta base en Frontale (formulaires, code, états, requête, etc.) /Dorsale (juste les données) avec la frontale sur le poste client et la dorsale sur le réseau ?

    Est-ce que si tu ouvres directement tes tables, tu as un problème de vitesse ?

    Est-ce que si tu ouvres directement la source de données de ton formulaire, tu as un problème de vitesse ?

    Est-ce que ton formulaire comprend beaucoup de listes déroulantes ou des listes déroulantes avec beaucoup de lignes ?

    Est-ce que tu utilises des listes pour afficher tes données au lieu d'utiliser des sous-formulaires ?

    Est-ce que ton formulaire affiche des images ?

    Pour intégrer le SQL, il faudrait que tu précises où tu veux le mettre. Est-ce la source du formulaire ? D'une liste ? D'un sous-formulaire ?

    A+
    Bonjour marot_r,
    merci pour ton aide,
    les repenses à tes question :

    .je comprend pas ce que tu vx dire par découpage frontale/dorsale.
    .Quand j'ouvre les tables ceux qui sont courtes elles s'ouvrent en 2 secondes, les autres qui sont plus longues environ 65000 ligne mettent un peu plus 15-20 secondes
    .Qd j'ouvre directement le formulaire c'est encore pire 10 à15 min en moyenne.
    .ya q'une liste déroulante à 11 choix.
    .j'utilise un ss-formulaire.
    .Non
    Cordialemnt

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [EnTête_Cli/Co].[N° client], [EnTête_Cli/Co].Nom, [EnTête_Cli/Co].Prénom, [EnTête_Cli/Co].Adresse, [EnTête_Cli/Co].Tel, [EnTête_Cli/Co].[PA-Grade PD Partenaire], [EnTête_Cli/Co].[Très Faibe], [EnTête_Cli/Co].[PA-id EDS niveau 2], [EnTête_Cli/Co].[PA - EDS Niveau 2#PA-nom EDS], [EnTête_Cli/Co].[PA-id EDS niveau 3], [EnTête_Cli/Co].[PA - EDS Niveau 3#PA-nom EDS], [EnTête_Cli/Co].[PA-Classe de gestion particulière], [EnTête_Cli/Co].[EN- No siren], CONTRAT_CLIENT.Comment_Commerciale, CONTRAT_CLIENT.Comment_Gestion, Pied_Formulaire.[SommeDeNb de sinistres], Pied_Formulaire.[SommeDeCharge sur 3 ans], Pied_Formulaire.[SommeDeCotisation triennale hors taxe], Pied_Formulaire.[MoyenneDeS/C], Pied_Formulaire.CompteDeN°contrat, Pied_Formulaire.Pnb_Total, Pied_Formulaire.[BCSM - total prets], Pied_Formulaire.Total_Epargne, Pied_Formulaire.[PA-date Entrée en Relation]
    FROM ([EnTête_Cli/Co] LEFT JOIN Pied_Formulaire ON [EnTête_Cli/Co].[N° client] = Pied_Formulaire.[N° client]) LEFT JOIN CONTRAT_CLIENT ON [EnTête_Cli/Co].[N° client] = CONTRAT_CLIENT.[PA-id Partenaire]
    GROUP BY [EnTête_Cli/Co].[N° client], [EnTête_Cli/Co].Nom, [EnTête_Cli/Co].Prénom, [EnTête_Cli/Co].Adresse, [EnTête_Cli/Co].Tel, [EnTête_Cli/Co].[PA-Grade PD Partenaire], [EnTête_Cli/Co].[Très Faibe], [EnTête_Cli/Co].[PA-id EDS niveau 2], [EnTête_Cli/Co].[PA - EDS Niveau 2#PA-nom EDS], [EnTête_Cli/Co].[PA-id EDS niveau 3], [EnTête_Cli/Co].[PA - EDS Niveau 3#PA-nom EDS], [EnTête_Cli/Co].[PA-Classe de gestion particulière], [EnTête_Cli/Co].[EN- No siren], CONTRAT_CLIENT.Comment_Commerciale, CONTRAT_CLIENT.Comment_Gestion, Pied_Formulaire.[SommeDeNb de sinistres], Pied_Formulaire.[SommeDeCharge sur 3 ans], Pied_Formulaire.[SommeDeCotisation triennale hors taxe], Pied_Formulaire.[MoyenneDeS/C], Pied_Formulaire.CompteDeN°contrat, Pied_Formulaire.Pnb_Total, Pied_Formulaire.[BCSM - total prets], Pied_Formulaire.Total_Epargne, Pied_Formulaire.[PA-date Entrée en Relation];

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    .je comprend pas ce que tu vx dire par découpage frontale/dorsale.
    L'architecture recommandée est d'avoir en réalité 2 fichiers : une bD frontale qui contient tout ce qui est "Code" au sens large du terme et un BD Dorsale qui ne contient que les données.
    La frontales se connecte (via des tables liées) aux données dans la dorsale.
    Selon le besoin la dorsale est copiée en local sur le PC de l'utilisateur.

    Comme cela tu peux travailler sur une nouvelle version de ta frontale sans mettre en danger tes données. Il suffit que la frontale de développement pointe sur une copie des données.
    De plus si quelqu'un est dans la base non découpé tu ne peux pas changer le code, les formulaires et les rapports (états).

    Un des inconvénient c'est que parfois cela ralenti considérablement l'application.

    Le SQL que tu as posté, c'est celui qui alimente ton formulaire ?

    Si oui, quand tu ouvres cette requête, dans l'éditeur de requête, Est-ce long ?

    Teste aussi le temps l'ouverture de ton formulaire SANS sa source de données.

    Une méthode un peu longue pour trouver d'où cela peut venir est de faire une copie du formulaire puis pour chacun des contrôles enlever le contrôle et tester le temps d'ouverture avec ce contrôle en moins.

    C'est un peu fastidieux mais en commençant par les coupables habituels : sous-formulaires, liste déroulantes, listes, cela permet d'isoler le problème.

    J'ai eu un cas où mon formulaire mettait 40s. En enlevant une liste on je suis passé à 5s. Je savais ainsi que la liste était coupable.
    En la remplaçant par un sous-formulaire j'ai apporté de nouvelles fonctionnalités à mon utilisateur (largeur de colonnes, tris, édition directe) ET j'ai maintenu le temps à 5s environ.

    Bonne chasse au bouffeur de temps d'exécution.

    A+

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

    Adopter un archi frontale/dorsale a certes des avantages, comme ceux indiqués par marot_r, mais pas celui d'accélérer les temps de réponse. Dans certain cas cela peut même les allonger énormément. cf le tuto entre le paragraphe II-B et VIII.

    Mais bon je dis ça mais tu n'es pas obligé d'en tenir compte.

    Cordialement,

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 742
    Points : 57 547
    Points
    57 547
    Billets dans le blog
    42
    Par défaut
    Bonjour,

    Citation Envoyé par Rafa35 Voir le message
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ...GROUP BY [EnTête_Cli/Co].[N° client], 
    [EnTête_Cli/Co].Nom, [EnTête_Cli/Co].Prénom, [EnTête_Cli/Co].Adresse, 
    [EnTête_Cli/Co].Tel, 
    [EnTête_Cli/Co].[PA-Grade PD Partenaire],
     [EnTête_Cli/Co].[Très Faibe],
     [EnTête_Cli/Co].[PA-id EDS niveau 2],
     [EnTête_Cli/Co].[PA - EDS Niveau 2#PA-nom EDS],
     [EnTête_Cli/Co].[PA-id EDS niveau 3],
     [EnTête_Cli/Co].[PA - EDS Niveau 3#PA-nom EDS],
     [EnTête_Cli/Co].[PA-Classe de gestion particulière],
     [EnTête_Cli/Co].[EN- No siren],
     CONTRAT_CLIENT.Comment_Commerciale,
     CONTRAT_CLIENT.Comment_Gestion,
     Pied_Formulaire.[SommeDeNb de sinistres],
     Pied_Formulaire.[SommeDeCharge sur 3 ans],
     Pied_Formulaire.[SommeDeCotisation triennale hors taxe],
     Pied_Formulaire.[MoyenneDeS/C],
     Pied_Formulaire.CompteDeN°contrat,
     Pied_Formulaire.Pnb_Total, Pied_Formulaire.[BCSM - total prets],
     Pied_Formulaire.Total_Epargne,
     Pied_Formulaire.[PA-date Entrée en Relation];
    III-E. Requêtes
    Evitez le Group By sur trop grand nombre de colonnes.
    D'autant plus qu'il n'y a aucune opération (Sum, Count...) sur le regroupement.

Discussions similaires

  1. [MySQL] Base de données trop solicitée => mysql_insert_id
    Par gazelle dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/07/2009, 11h22
  2. Importation de 15mo de données trop lent
    Par sami_c dans le forum ASP
    Réponses: 0
    Dernier message: 09/06/2008, 11h13
  3. Base de données trop importante
    Par stefane26 dans le forum Excel
    Réponses: 7
    Dernier message: 12/07/2007, 07h46
  4. Base de données trop importante
    Par creale10 dans le forum Outils
    Réponses: 8
    Dernier message: 10/12/2006, 19h40
  5. Base de données trop grosse pour sql
    Par creale10 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/12/2006, 10h25

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