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 :

[SQL] temps d'execution aléatoirement long...


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 116
    Points : 105
    Points
    105
    Par défaut [SQL] temps d'execution aléatoirement long...
    bonjour tout le monde,
    j'ai une requete d'insertion reposant sur une jointure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inserto into table1(ch1, ch2,....ch20) select ch1, ch2,....ch20 from table2 left join table3 on table2.ch1 = table3.ch1
    Vendredi soir le temps d'execution de cette requete etait tellement long que je n'en ai pas vu la fin...
    Apres avoir stopper l'execution avec "ctrl-break", j'ai redémarrer plusieurs fois la machine en me disant que c'etait un pb de memoire, mais ça ne changeait rien. Le seul gain de vitesse était obtenu en reduisant le nombre de champs à inserer dans la table à 1 ou 2.
    j'ai également compacté la base, mais rien n'y faisait.
    Ce matin, je m'y remets et hop! comme une lettre à la poste, tout se passe vite et bien.
    1. Quelqu'un à-t-il une idée de la cause de de la lenteur de vendredi?
    2. Y-a-t-il une spécificité du "join" qui puisse fournir une explication?
    3. Si une manip est possible en cas de lenteur, comment repérer la lenteur d'execution pour avertir l'utilisateur? (qui ne souhaitera pas forcément laisser sa machine se reposer tout un week end..)

    merci de votre aide,
    a+
    b.

  2. #2
    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 : 41
    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
    A mon avis il faut chercher d'un autre coté.

    Notamment la modélisation de ta base.

    Pourquoi as tu ce besoin d'insérer dans une table des données provenant de deux autres tables avec une jointure ? A priori, il s'agit d'un problème de conception.

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 116
    Points : 105
    Points
    105
    Par défaut
    salut tofalu,

    effectivement, je me suis trompé en transcrivant ma requete:
    toutes mes excuses...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table1(ch1, ch2,....ch20) select ch1, ch2,....ch20 from table2 left join table3 on table2.ch1 = table1.ch1 where table1.ch1 is null
    où ch1 est clé.
    il s'agit d'ajouter des données manquantes dans table1 à partir de table2 qui est en fait une table liée à un fichier texte qui s'enrichit tous les jours.

    PS: j'ai eu le meme pb en enlevant le "insert into" et en gardant le "select"...
    Merci de ton aide tof,
    a+

  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 : 41
    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
    Mais que viens faire la table 3 ?

  5. #5
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 116
    Points : 105
    Points
    105
    Par défaut
    bon, je n'ai aucune excuse: j'ai mal corrigé, la table 3 n'existe pas, je me suis trompé en transcrivant la requete, il n'y a que deux tables...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table1(ch1, ch2,....ch20) select ch1, ch2,....ch20 from table2 left join table1 on table2.ch1 = table1.ch1 where table1.ch1 is null
    désolé de te faire perdre ton temps avec mes étourderies..!
    Cela dit, mon pb reste entier et tu as maintenant la bonne version de la requete (j'évite de mettre la vraie car elle est un peu trop longue)

    encore désolé,
    a+
    b.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    table1.ch1 is null

    il serait bon d'indexer table1.ch1

    deuxio soigne la mémoire si tu as une reqête assez critique garde un mini d'application access

    trois si tes tables sont en réseau c'est peut être le réseau qui est en cause

  7. #7
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 116
    Points : 105
    Points
    105
    Par défaut
    salut random,

    tout ça est fait et les tables de sont pas en reseau...
    merci de ton aide,
    a+
    b.

Discussions similaires

  1. Programme de recherche temps d'execution trop long
    Par lucas67 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/11/2007, 15h15
  2. [PL/SQL] Temps de mis à jour trop long
    Par Mella dans le forum SQL
    Réponses: 9
    Dernier message: 18/07/2007, 10h48
  3. temp d'execution d'une requete sql
    Par mitoubra dans le forum JDBC
    Réponses: 4
    Dernier message: 15/06/2007, 22h34
  4. Temps d'execution trop long !
    Par taisherg dans le forum Access
    Réponses: 14
    Dernier message: 15/06/2007, 13h22
  5. [VBA-E] Temps d'execution de requetes SQL tres long
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/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