webForumDet fria alternativet

Stoppa in upp til 1500 poster till en databas på ett snabbt sätt?

.NET

6 svar · 615 visningar · startad av Smultron

Medlem sedan juli 2002423 inlägg
Frågan#1

Jag har en webbapplikation i ASP.NET C# och MS SQL Server där jag läser igenom en textfil där jag vill spara denna till en databas. Just nu gör jag så att jag skapar en ny TableRow som jag uppdaterar men det går Väldigt segt.

Hur ska jag göra på smidigast sätt för att det ska gå så snabbt som möjligt, det är ju inga stora datamängder utan bara väldigt många poster?

Medlem sedan dec. 19996 522 inlägg
Medlem sedan feb. 2005280 inlägg
#3

Att bara köra 1500 INSERT statements till en tabell (som inte har primärnyckel/indexerad kolumn) borde ju gå tämligen kvickt. Hur ser koden ut? Hur är tabellen designad?

Medlem sedan dec. 2005664 inlägg
#4

Bulk Copy, tar väl bort alla existerande poster i tabellen?

Medlem sedan dec. 20014 239 inlägg
#5

freguz skrev:

Att bara köra 1500 INSERT statements till en tabell (som inte har primärnyckel/indexerad kolumn) borde ju gå tämligen kvickt.

Har gjort ett program som gör på det sättet. Vanlig insert. Plockar in ca 8000 poster på ca en minut. Maskinen det körs på är inte direkt snabb heller men det duger för ändamålet. I mitt fall tömmer jag tabellen innan jag petar in posterna på nytt.

Medlem sedan juli 2002423 inlägg
#6

Det är på min Windows-burk just nu
Men jag skapar en SqlConnection, sen en SqlDataAdapter och hämtar ut all info från tabellen. Släger in det datat i ett dataset. Sedan skapar jag en DataTable och sedan loopar jag igenom min textfil och plockar ut informationen och skapar en ny datarow som jag kör in i min datatable i varje loop, sen när textefilen är genomgått uppdaterar jag databasen från mitt dataset.

ungefär så... och tabellen har en auto increment primary key int, en int, två små nvarchars, och en ntext.

Medlem sedan aug. 20003 575 inlägg
#7

Varför hämtar du data från databasen och fyller datasetet?
Varför lägger du inte in informationen direkt till databasen från textfilen och skippar steget med DataSet?

246 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)