Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 27/10/2011, 11h22   #1
Invité de passage
 
Homme
stagiaire
Inscription : septembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : stagiaire
Secteur : Communication - Médias

Informations forums :
Inscription : septembre 2011
Messages : 26
Points : 3
Points : 3
Par défaut Lenteur d'une requête lors du premier lancement

Bonjour,

Je suis actuellement sur un problème assez dur à cibler, donc je vais commencer par poster ici, dans le doute.

Voila, j'utilise des tables liées (odbc) avec access 2007 pour faire des requêtes tous les jours. Suite à un changement des tables liées (que je ne gère pas du tout) j'ai du changer mes requêtes. Pour faire simple, une table assez conséquente avec de nombreux champs à été séparé en trois (trois fois moins de champs dans les 3 tables). La conséquence, c'est que j'ai du ajouter des joints dans toutes mes requêtes pour ajouter les informations qui m'étaient nécessaires. L'ajout pur et simple des tables manquantes donnait une requête qui se terminait en 6h. Moui, pas très efficace professionnellement.

Je suis passé par plusieurs étapes. De l'ajout du joint bête à l'optimisation de requêtes etc. Je ne rentrerais pas dans le détail car j'ai l'impression que ma requête SQL en elle même ne pose pas (ou plus) de problèmes.

Voici le coeur du problème : j'allume mon PC, je lance ma bdd access puis la requête (appelons la par son nom, reportingV6). Access m'ouvre une fenêtre qui dit :
Citation:
Vous allez exécuter une requête Création de table qui modifiera les données de votre table
Etes-vous sur.......
Au moment ou je pousse le bouton "oui", access se met à ramer et 30 minutes plus tard, me demande si je souhaite vraiment supprimer la table existante, et dans la foulée me demande les infos de connexions à la bdd distante (login, mdp). Puis viennent 30 seconde d’exécution du SQL et jsuis rendu.

J'ai déjà essayé de supprimer la table avant de lancer la requête, et même de lancer une autre requête depuis le même fichier access (pour qu'il ne me demande plus les infos de connexions qui restent valables tant qu'on ne ferme pas le fichier) et rien n'y fait. Le plus rageant est que, si je relance cette requête, il me demande les mêmes informations (sauf la connexion donc, vu que c'est la seconde fois que je lance une requête dans ce fichier) immédiatement et exécute la requête en une minute.

Je précise que la première fois, après la seconde vague d'information (à t+30min), la barre d'avancement se réveille et file à toute vitesse, pour terminer la requête 30 secondes plus tard. C'est le même chrono qu'au seconde lancement.

Voila, je ne comprend donc pas pourquoi au premier lancement ce cette requête, access met tant de temps à démarrer. Car j'ai vraiment le sentiment que le problème ne vient pas de mon code SQL, et que c'est un mic mac made in access qui fait que le processus global et ralenti, et pas l’exécution propre du code. Je peux vous dire qu'après quelques jours d'optimisation de requête, j'ai la rage (en plus je n'ai jamais vraiment eu de formation SQL/access, donc je patauge)

Dernière précision, j'ai plusieurs champs calculés en VBA. Test réalisé sans ces champs => même résultats.

Quelqu'un peut-il éclairer ma lanterne ?

Ps : je ne fournis pas le code SQL pour la simple et bonne raison qu'il est confidentiel (enfin j'imagine) et aussi parce que mes recherches s'orientent plus sur un problème au niveau de access pur.
Bamban est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 13h01   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Bamban,

Citation:
Envoyé par Bamban
.../... et dans la foulée me demande les infos de connexions à la bdd distante (login, mdp) .../...
==> cela me paraît curieux. Quand tu lies des tables via ODBC, la fenêtre de choix de la table te demande "Enregistrer le mot de passe" : il faut cocher cette case pour ne pas avoir à rentrer le login/mdp à l'ouverture des tables.

Citation:
Envoyé par Bamban
.../... je ne fournis pas le code SQL pour la simple et bonne raison qu'il est confidentiel .../...
==> je ne vois pas en quoi un code SQL peut-être confidentiel. Les données affichées, OK, mais le code SQL ?...
Si le nom des tables/champs lui-même est confidentiel, il suffit de les renommer xx, yy, etc...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 14h38   #3
Invité de passage
 
Homme
stagiaire
Inscription : septembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : stagiaire
Secteur : Communication - Médias

Informations forums :
Inscription : septembre 2011
Messages : 26
Points : 3
Points : 3
Citation:
Envoyé par Richard_35 Voir le message
Quand tu lies des tables via ODBC, la fenêtre de choix de la table te demande "Enregistrer le mot de passe
Parfaitement d'accord, j'ai recrée la base avec ceci. Bien sur, l'expérience que j'avais mené m'avait déjà informé que le problème ne se situait pas là.

Citation:
Envoyé par Richard_35 Voir le message
je ne vois pas en quoi un code SQL peut-être confidentiel.
En fait, mon code est crade. Je ne code pas directement en SQL mais je réalise les requêtes avec l'outil graphique de access. Donc c'est pas indenté. Ajoute que j'ai de nombreuses requêtes imbriquées et tu finis par n'avoir que 20% de l'information en ayant le code SQL.
Bamban est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 14h53   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Bamban
l'expérience que j'avais mené m'avait déjà informé que le problème ne se situait pas là
==> dans ton expérience, le login de connexion t'était-il également demandé ?


Plusieurs pistes, peut-être :
  • Vérifies les nouvelles jointures que tu as dû créer suite au découpage de ta table ;
  • Il faudrait que tu remettes ton code SQL dans l'assistant en sauvegardant la requête, puis éliminer, une à une, les tables qui te semblent en cause et repérer le moment où ta requête se déroule normalement.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h15   #5
Invité de passage
 
Homme
stagiaire
Inscription : septembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : stagiaire
Secteur : Communication - Médias

Informations forums :
Inscription : septembre 2011
Messages : 26
Points : 3
Points : 3
En fait, le login/mdp n'est demandé qu'une fois par instance de fichier. Donc pour tester la solution "sans avoir à taper le mot de passe", je lançais une autre requête courte, qui me demandait le login, et qui faisait que je n'avais plus besoin de l'entrer pour ma grosse requête.

Tests faits, j'ai ajouté l'enregistrement du mot de passe et ça n'a malheureusement rien changé.

Bon, je me lance sur tes pistes. Merci pour le coup de pouce !
Bamban 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 05h39.


 
 
 
 
Partenaires

Hébergement Web