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 :

upate qui tombe en time out


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 259
    Points : 128
    Points
    128
    Par défaut upate qui tombe en time out
    J'aimerais faire un update sur une table qui contient des milllions d'enrégistrements.
    Le problème est que mon ordre d'update tombe en timeout car il prend trop de temps.
    J'ai pensé faire un order by sur la clé primaire afin de passer mon ordre d'update, 100.000 enrégistrement par 100.000 enrégistrement. Comment automatiser le traitement ?
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,
    Un ORDER BY ne permet que de trier le résultat d'un SELECT, je ne vois pas trop ce qu'il va faire dans un UPDATE...
    S'il faut traiter les lignes "par lot", il faut ajouter une restriction avec un WHERE.

    Tatayo.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Peut être que tout simplement ce sont vos critères de filtrage ou de jointure qui posent problème ou qu'ils ne correspondent à aucun index
    Communiquez votre requête, le DDL de la table et de ses index et précisez votre SGBD

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 259
    Points : 128
    Points
    128
    Par défaut
    J'aimerais juste faire un simple update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE Customers
    SET City='Hamburg'
    WHERE CustomerID=1;
    Il y a un moyen en sql de faire ma requête?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Mais tu viens de le faire en SQL !
    Si c'est cette requête qui part en timeout, je ne vois que 2 problèmes:
    1. Tu n'as pas d'index sur la colonne CustomerID
    2. Tu as des clés étrangères sur city, qui "pointe" sur une autre table, et sans indexes sur cette colonne dans la table en question

    Dans le premier cas le moteur doit parcourir toute la table Customer, et dans le deuxième il doit parcourir la table sur laquelle pointe la clé étrangère.
    J'imagine que tu as plus de clients que de villes dans ta base de données, donc je penche pour la première hypothèse.

    Tatayo.

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Je me permets d'insister, il est impossible de répondre à un problème de performances sans connaitre le DDL de la table et de ses index, ni le SGBD
    Communiquez les ordres CREATE TABLE, CREATE INDEX, ALTER TABLE
    L'ordre UPDATE de votre requête est tout à fait valide et devrait s'exécuter immédiatement

Discussions similaires

  1. [Session]maîtriser le time out de la session
    Par croquedur dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 23/10/2007, 11h57
  2. MSXML2.serverXMLHTTP : The operation timed out
    Par malbaladejo dans le forum ASP
    Réponses: 1
    Dernier message: 06/12/2005, 09h50
  3. Problème de time-out avec un socket client.
    Par Depteam1 dans le forum MFC
    Réponses: 3
    Dernier message: 17/10/2005, 11h30
  4. [hibernate][C3PO] connexion mySQL qui tombe ....
    Par michaelbob dans le forum Hibernate
    Réponses: 14
    Dernier message: 27/09/2005, 16h02
  5. error time out expired
    Par the_new dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2005, 14h03

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