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

C# Discussion :

lenteur de mise à jour d'une base


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Points : 32
    Points
    32
    Par défaut lenteur de mise à jour d'une base
    bonjour
    je doit créer en sortie une base de données dbase contenant 3 tables chaque tables contiendra un nombre important de lignes
    donc j'ai un dataset qui contient mes tables de sortie donc j'ai exécuté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adapter.Update(bd_output.Tables["X"]);
    avec la commande d'insertion (car au départ les tables sont vides)
    tout fonctionne mais le update prend énormément de temps quand j'ai un grand nombre de ligne
    comment faire pour réduire ou optimiser cette instruction
    je suis obligé d'avoir en sortie dbase

    merci de m'aider

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    bah déjà, faut que tu profiles ton appli pour voir si ta lenteur vient de ton appli ou de la requête.
    Ensuite si ca vient côté base, passer un profiler pour voir comment optimiser la base (placement d'index and co).

    Bref, vague comme tu es, on ne pourra pas t'aider il va te falloir utiliser les outils dédiés à cette tâche et les exécuter sur ton code/environnement. c'est la seule solution.

  3. #3
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    +1 pour Louis Guillaume.

    Ceci dit, si tu es sur SQL Server, je pense que tu dois pouvoir solutionner ton problème à base de Bulk update. Tu peux également utiliser le mot clé 'TOP' en SQL pour faire "paquets" d'update (en bouclant dessus).

    Si tu as un nombre vraiment important de ligne, attention à l'utilisation du dataset.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    c'est pas un problème d'application ou d’indexage
    (c'est une application winforms toute simple)
    quand le nombre de ligne de ma table sources est conséquent le update prend beaucoup de temps pour exécuter cette instruction alors que c'est juste une simple opération de copie de la table du dataset vers dbase
    que peut ont utilisé au lieu du dataset ??

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    moi je vote pour le dataset/dataadapter ...
    l'objet de plus bas niveau pour accéder à une base de données est le Command pour exécuter une requete, Reader obtenu à partir du Command pour de la lecture de données (SELECT)

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    et surtout Dieu a inventé l'ORM il y a des années. le dataset, saymal!

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    les orm sont parfois critiqués ... enfin rarement sur des bases simples je pense

  8. #8
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    c'est juste une simple opération de copie de la table du dataset vers dbase
    Tu mets à jour toujours toutes les lignes ? Ou seulement les lignes modifiées ? Si que les modifiées, connais-tu les "modifiées" ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    il faut savoir qu'au départ les tables sur dbase sont vide
    donc il va insérer toutes les lignes résultante(copie le contenu de tout les datatables dans leur tables associés)

Discussions similaires

  1. Lenteur d'une mise à jour sur une base SQL Server
    Par Maximoute dans le forum Administration
    Réponses: 8
    Dernier message: 25/05/2009, 09h08
  2. Réponses: 6
    Dernier message: 15/05/2006, 17h04
  3. probleme de virgule dans la mise à jour d'une base de donnée
    Par KAF dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/12/2005, 02h18
  4. mise à jour d'une base
    Par le géologue dans le forum Access
    Réponses: 7
    Dernier message: 17/11/2005, 09h46
  5. mise à jour d'une base de données
    Par flo83 dans le forum ASP
    Réponses: 6
    Dernier message: 12/06/2005, 20h27

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