Insert avec SQLCommand

ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008 - 14 nov. 2007 à 12:04
auichance Messages postés 6 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 22 octobre 2010 - 18 août 2010 à 12:40
J'insère des données dans une base de données SQL Server 2005 à l'aide dune SqlCommand en C#.NET.
Les 10000 premiers enregistrement ca s'insère assez vite, mais le problème c'est que après ces 10000 enreigstrements ca ralentit fortement. Pour info j'ai + de 200000 lignes à insérer. Et pour la moitoé ca me prends une heure !!!!

Y a t'il un autre moyen pour insérer des données plus rapidement ?

Ethan

2 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
14 nov. 2007 à 13:25
Hello,

Ce n'est pas un forum SQL, mais je pense que ton problème vient de l'indexation de tes tables.
Si après chaque insertion, sql refait les index, c'est normal que ça prenne de plus en plus de temps.

A ceci, je vois deux solutions :

Si ta table est vide au début, tu peux essayer d'utilser un bulk insert. En gros, ça fait un import d'un fichier plat dans une table. c'est extrémement rapide, mais nécessite un fichier plat avec les données.
Autrement, tu peux essayer d'enlever tes indexes avant de faire les insert et de remettre les indexes après. De cette manière, l'index n'est recalculé qu'une fois.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
auichance Messages postés 6 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 22 octobre 2010
18 août 2010 à 12:40
salut:
 je remercie de tout mon coeur tout ceux qui ont participè dons la realisation de ce site,qui m'a aidè bq afin de trouver des reponces à mes questions curieuses a propos de la programmation que je considere comme uu a
0
Rejoignez-nous