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

Langage SQL Discussion :

problème requete sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Par défaut problème requete sql
    j'ai un soucis avec une requete sql que j'effectue sur un gros volume de données et qui prend super longtemps à s'excecuter . je voudrai savoir s'il y a moyen de l'optimiser

    je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    update table_1 
    set champs1='value1', champs2='value2', date= (
      select date 
      from table2.date 
      where table2.id !=' ' and table1.id = table2.id) 
    where champs1 = 'value';
    Un grand merciiiiiiiiiiiiiiiiiiii d'avance!!!!!!!!

  2. #2
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Un tout petit peu d'indentation ne fera pas de mal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE table_1
    SET champs1='value1'
       , champs2='value2'
       , date= ( SELECT date
                 FROM table2.date
                 WHERE table2.id !=' '
                 AND table1.id = table2.id )
    WHERE champs1 = 'value';
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    quel volume?
    combien de temps d'exécution?
    as tu des index sur tes tables?

  4. #4
    Membre chevronné Avatar de icsor
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2008
    Messages : 258
    Par défaut
    Salut,

    tu travailles sur quel SGBD et qu'elles sont les indexes sur les table 1 et 2?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Par défaut
    Merci pour vos réponses!!!!!
    alors voilà :

    1- SGBD : Mysql
    2- Index : table1 (id,champs1, date,) , table2 (id)
    3- table 1 = 900 000 enregistrements , table2 = 80 000

    je sais pas combien de temps elle met pour tout traiter mais en tt cas au bout de plus d'une heure et demi je l'ai arrété

  6. #6
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    En même temps, MySQL n'est pas vraiment optimisé pour supporter de telles charges de données.. ça me paraît logique que les traitements soient longs.
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 64
    Par défaut
    donc pas de solutions??!!! aucun traitement ne pourra permettre de ganger du temps ?!! c'est normal que ça prenne plus de 3h là

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Lyche Voir le message
    En même temps, MySQL n'est pas vraiment optimisé pour supporter de telles charges de données.. ça me paraît logique que les traitements soient longs.
    Alors ça c'est comique !
    Comment se fait-il que j'ai des temps de réponse satisfaisants avec MySQL et une base de données contenant des tables de plusieurs dizaines de millions de lignes ?

    Par exemple, cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT AVG(DATEDIFF(MiniSort, MiniEntr)) AS Moyenne, 
         MIN(DATEDIFF((MiniSort, MiniEntr)) AS Mini, 
         MAX(DATEDIFF(MiniSort, MiniEntr)) AS Maxi
    FROM bdni2.detentions d3
    INNER JOIN (
        SELECT d2.B_D_FK_IND_BOVINS, MIN(d2.B_D_DAT_ENTR) AS MiniEntr, MIN(d2.B_D_DAT_SORT) AS MiniSort
        FROM bdni2.detentions d1
        INNER JOIN bdni2.detentions d2 ON d1.B_D_FK_IND_BOVINS = d2.B_D_FK_IND_BOVINS
            AND d1.B_D_DAT_SORT <= d2.B_D_DAT_ENTR
        WHERE d1.B_D_FK_IND_CAUSE_SORT IN (2, 3, 11)
        GROUP BY d2.B_D_FK_IND_BOVINS
    ) tmp ON d3.B_D_FK_IND_BOVINS = tmp.B_D_FK_IND_BOVINS
        AND d3.B_D_DAT_ENTR = tmp.MiniEntr
        AND d3.B_D_DAT_SORT = tmp.MiniSort
    S'exécute en environ 90 secondes avec une table 'detentions' de 42 millions de lignes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [MySQL] Problème requete SQL dans PHP
    Par dl_jarod dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/04/2006, 14h40
  2. problème requete sql fusion de deux count
    Par TuxP dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/12/2005, 15h15
  3. Problème requete SQL
    Par tonyskn dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/11/2004, 20h37
  4. problème requete sql
    Par Fred- dans le forum ASP
    Réponses: 2
    Dernier message: 13/06/2004, 02h20
  5. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31

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