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

Linq Discussion :

Performance insert avec requete sur fichier xml


Sujet :

Linq

  1. #21
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Points : 24
    Points
    24
    Par défaut
    Tu utilises quoi pour l'accès à ta base?

    Pourquoi ne pas boucler et créer ta liste d'objet puis faire un bulk copy?

  2. #22
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Pour faire ma base de donnée j'utilise un dataset avec une connectionstring puis avec des datagridview j'affiche mes table. C'est des base de donnée local *.sdf fait avec sql compact. Et merci pour ton idée angeG, mais tu pourrais me montrer un exemple parce que je ne vois pas trop ce que tu veux dire .

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Oh miracle ! Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     var reqXml = from variables in docXML.Descendants("VAR")
                                           where variables.Parent.Parent.Attribute("NAME").Value.StartsWith("SIMU")
                                            select new
                                    {
                                        id = idChoisi,
                                        nom = variables.Attribute("ONAME").Value,
                                        type = variables.Attribute("TYPE").Value,
                                        commentaire = (variables.Attribute("COMMENT") != null) ? variables.Attribute("COMMENT").Value : null,
                                        chemin = variables.Parent.Parent.Attribute("NAME").Value.Split(new char[] { '/' })[1]
                                    };
     
                DataTable table = new DataTable();
                table.Columns.Add("CB_Vars_STR_Id", typeof(long));
                table.Columns.Add("CB_Vars_Chemin", typeof(string));
                table.Columns.Add("CB_Vars_Nom", typeof(string));
                table.Columns.Add("CB_Vars_Type", typeof(string));
                table.Columns.Add("CB_Vars_Commentaire", typeof(string));       
     
                foreach (var req in reqXml)
                {
                    table.Rows.Add(req.id, req.chemin, req.nom, req.type, req.commentaire);
                }
    Maintenant le temps : 93 ms impressionnante rapidité !
    Donc maintenant que j'ai un datatable plein de puissance, comment pourrais je l'insérer dans ma table sans utilisé un bulkcopy parce que je suis en *.sdf et donc ça ne marche pas. Merci pour tous ceux qui m'ont déjà aider.

    PS : Si quelqu'un pouvait me dire pourquoi c'est plus rapide avec des datatables plutôt que sur des inserts il serait le bienvenu

  4. #24
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Classique... 20ms par insert soit seulement 50 insert/secondes:
    147000 insert : 2940sec soit 0.8 heures (50mn)...

  5. #25
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Si quelqu'un pouvait me dire pourquoi c'est plus rapide avec des datatables plutôt que sur des inserts il serait le bienvenu
    Attends tu n'as pas encore inséré :-)

  6. #26
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Ceci ne vous aiderez pas?

    http://sqlcebulkcopy.codeplex.com/


    Pourquoi ne pas passer à plus robuste avec SQL EXPRESS?

  7. #27
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Merci iberserk pour toutes ces réponses, je vais regarder et je vous dirais ce que j'en tire .

  8. #28
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Cool, ton bulksqlcecopy ça à mis 8.82 secondes impressionnants
    Merci beaucoup iberserk et à tous les autres qui m'ont aidé

  9. #29
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Cool, ton bulksqlcecopy ça à mis 8.82 secondes impressionnants
    Merci beaucoup iberserk et à tous les autres qui m'ont aidé
    De rien...

    Gardez toujours à l'esprit qu'un SGBD (SQL SERVER, ORCALE, postgresql etc.) est fait pour traiter de forts volumes de données de manière ensembliste, à l'inverse de l'approche code client (C#, J2ee,PHP, etc...) qui ne sont pas capable de traiter de manière performante un ensemble de données...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Requête sur fichier XML avec liaison de données
    Par lpyann dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 14/08/2014, 21h44
  2. Traitement basique sur fichier xml avec python
    Par raphael75015 dans le forum Général Python
    Réponses: 11
    Dernier message: 22/05/2014, 15h44
  3. Réponses: 4
    Dernier message: 27/02/2010, 22h04
  4. Réponses: 1
    Dernier message: 07/09/2009, 07h15
  5. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38

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