Kom ihåg mig?
Home Menu

Menu


hjälp med STOOOOOR databas.

Ämnesverktyg Visningsalternativ
Oläst 2016-01-25, 14:24 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Question hjälp med STOOOOOR databas.

Hej,
en kund till mig har ett problem som jag inte riktigt vet hur jag ska lösa..

så här är system uppbyggd (vilket fungerade bra i början med en liten db)

1. Kunden tankar ner ex excelfil från FTP. (excelfil innehöll MAX 100,000 rader)
2. Kunden laddar upp filen via ett adminsystem som konvererar excelfilen till en MSSQL databas.
(Konvertering gjordes så att för varje rad skapa den den in stor sträng som med en ända sql insert, inserta hela ändringen)
3. via admingränsnittet kan kunden nu köra SQL förfrågning direkt mot databasen.

Men nu är det så att leverantören som levererar denna excelfil har ändrats lite och innehåller nu bokstavligen 10,000,000 (10 miljoner!!) rader med ca 60-70 Kolumner per rad.

Bästa approachen för situationen letas... kom med förslag...
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 14:50 #2
gregoff gregoff är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2010
Inlägg: 658
gregoff gregoff är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2010
Inlägg: 658
Försök att få leverantören att leverera en xml,json,csv så att du kan parsa den korrekt och scripta ihop en inmatning till databasen.
gregoff är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 15:10 #3
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
Prova Bulk Insert i sql server

Om du behöver jämföra med befintliga poster, stoppa in datat i separat tabell och testa med upsert-tekniken:

http://www.databasejournal.com/featu...erver-2008.htm
digiArt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 18:20 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Vad får du för problem med den större filen?

Har du en OpenXML excelfil så spelar det inte så stor roll om de byter format. Förvisso är den väl lite mer verbose än ren data-xml men skillnaden lär inte bli stor.

Annars är det bara att se till att köra importen som ett bakgrundsjobb och köra bulk inserts programmatiskt (testa dig fram vilket antal rader per insert som blir snabbast, det varierar med data-strukturer, db-mjukvara och hårdvaran).

Ska datan in i en tom tabell så är det ofta också en rejäl boost att lägga på indexen i tabellen först efter datan lagts in. Men det förutsätter ju att du vet att datan inte ger någon konflikt med indexen.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 18:34 #5
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Citat:
Ursprungligen postat av naak2803 Visa inlägg
Hej,
en kund till mig har ett problem som jag inte riktigt vet hur jag ska lösa..

så här är system uppbyggd (vilket fungerade bra i början med en liten db)

1. Kunden tankar ner ex excelfil från FTP. (excelfil innehöll MAX 100,000 rader)
2. Kunden laddar upp filen via ett adminsystem som konvererar excelfilen till en MSSQL databas.
(Konvertering gjordes så att för varje rad skapa den den in stor sträng som med en ända sql insert, inserta hela ändringen)
3. via admingränsnittet kan kunden nu köra SQL förfrågning direkt mot databasen.

Men nu är det så att leverantören som levererar denna excelfil har ändrats lite och innehåller nu bokstavligen 10,000,000 (10 miljoner!!) rader med ca 60-70 Kolumner per rad.

Bästa approachen för situationen letas... kom med förslag...

10M rader för en hemmaserver är inte jättemycket. Vill mycket till om du ska märka skillnad på 1M rader å 100M.

Citat:
Ursprungligen postat av naak2803 Visa inlägg
Men nu är det så att leverantören som levererar denna excelfil har ändrats lite och innehåller nu bokstavligen 10,000,000 (10 miljoner!!) rader med ca 60-70 Kolumner per rad.
I övrigt förstår ja inte ditt problem. Du skriver att din leverantör ändrats (?!), eller menar du att exelfilen nu innehåller 10M rader pga din leverantör? Varför skrev du isf fall att samma fil tidigare max innehöll 100k rader?
Nerix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 21:15 #6
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Citat:
Ursprungligen postat av Nerix Visa inlägg
10M rader för en hemmaserver är inte jättemycket. Vill mycket till om du ska märka skillnad på 1M rader å 100M.



I övrigt förstår ja inte ditt problem. Du skriver att din leverantör ändrats (?!), eller menar du att exelfilen nu innehåller 10M rader pga din leverantör? Varför skrev du isf fall att samma fil tidigare max innehöll 100k rader?
tidigare innehöll den 100,000 rader och nu 10M.
Kundens server timar ut.
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-25, 21:54 #7
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av naak2803 Visa inlägg
tidigare innehöll den 100,000 rader och nu 10M.
Kundens server timar ut.
Var/vad timear ut? Kan du inte bara öka timeouten? Sker hela importen på klient-tråden? Det bör ske som ett bakgrundsjobb oavsett om det är 100k eller 100M rader som ska in.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-26, 08:57 #8
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
10 miljoner rader med usla index osv., ja då kan man få problem men annars så är 10 miljoner rader i sig inte så värst mycket. 60-70 kolumner i en tabell tycker jag tyder på dålig modellering.
Se över index, jag kan mycket väl tänka mig att du har en flaskhals här.
Vad är det för databasmotor?
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-01-26, 10:26 #9
lazats avatar
lazat lazat är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2004
Inlägg: 537
lazat lazat är inte uppkopplad
Mycket flitig postare
lazats avatar
 
Reg.datum: May 2004
Inlägg: 537
Hur ofta göra denna uppdatering??

Selects är säkert 10 ggr snabbare än inserts. Gör om så att bara rader som är förändrade läggs in. Alt be leverantören om en spara bara de poster som är uppdaterade.
lazat är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 20:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017