Vinnaren i pepparkakshustävlingen!
2015-01-30, 12:52
  #1
Medlem
I mitt C#-program värdesätts en integer array pVal[100 000, 19] i en loop, som genomlöps mer än 200 ggr. För varje varv blir det nya värden och för varje varv vill jag uppdatera en SQL Server databas med pVals värden.

Jag hade en lösning för en Access databas, men den skulle kräva dagar för att föra in de mer än 20 miljoner värdena.

Förslag tas tacksamt om hur jag löser detta i C#, så att uppdateringen kunde göras på mindre än 10 timmar.
Citera
2015-02-01, 17:32
  #2
Medlem
Istället för att uppdatera databasen i varje varv bör du uppdatera ett datatable i c# i varje varv. Sedan när du loopar klart använda detta datatable för en set-baserad insert i databasen. Lycka till!
Citera
2015-02-03, 20:35
  #3
Medlem
Tack för svaret.

Jag har hittat detta exempel: http://www.morgantechspace.com/2013/...ql-server.html

Då undrar jag bara över den första rutan innehållande

CREATE TABLE [dbo].[ProductSalesData](
[SaleDate] [smalldatetime] NOT NULL,
[ProductName] [nvarchar](1000) NOT NULL,
[TotalSales] [int] NOT NULL)

Det blir ju syntaxfel om man skriver så. Hur ska C#-koden se ut som skapar ProductSalesData?

Eller ska koden ovan exekveras inifrån SQLServer Express?

Jag har just börjat att använda SQL Server 2012 Express, så mina kunskaper är mycket bristfälliga.
Citera
2015-02-08, 18:35
  #4
Medlem
Citat:
Ursprungligen postat av pilt
Eller ska koden ovan exekveras inifrån SQLServer Express?.

Japp.
Citera
2015-02-16, 23:10
  #5
Medlem
Citat:
Ursprungligen postat av pilt
I mitt C#-program värdesätts en integer array pVal[100 000, 19] i en loop, som genomlöps mer än 200 ggr. För varje varv blir det nya värden och för varje varv vill jag uppdatera en SQL Server databas med pVals värden.

Jag hade en lösning för en Access databas, men den skulle kräva dagar för att föra in de mer än 20 miljoner värdena.

Förslag tas tacksamt om hur jag löser detta i C#, så att uppdateringen kunde göras på mindre än 10 timmar.
kolla upp bulk insert / bulk copy
http://stackoverflow.com/questions/5...harp-datatable
gör stor skillnad om du har mycket data som ska in
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback