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?
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?
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.
Oh miracle ! Voici le code :
Maintenant le temps : 93 ms
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); }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![]()
Classique... 20ms par insert soit seulement 50 insert/secondes:
147000 insert : 2940sec soit 0.8 heures (50mn)...
Attends tu n'as pas encore inséré :-)Si quelqu'un pouvait me dire pourquoi c'est plus rapide avec des datatables plutôt que sur des inserts il serait le bienvenu
Ceci ne vous aiderez pas?
http://sqlcebulkcopy.codeplex.com/
Pourquoi ne pas passer à plus robuste avec SQL EXPRESS?
Merci iberserk pour toutes ces réponses, je vais regarder et je vous dirais ce que j'en tire.
Cool, ton bulksqlcecopy ça à mis 8.82 secondes impressionnants![]()
Merci beaucoup iberserk et à tous les autres qui m'ont aidé![]()
De rien...Cool, ton bulksqlcecopy ça à mis 8.82 secondes impressionnants
Merci beaucoup iberserk et à tous les autres qui m'ont aidé
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager