Avatar billede mousedreamer Nybegynder
10. marts 2011 - 17:26 Der er 3 kommentarer og
1 løsning

Hvordan fletter man kunder i stor database

Jeg har en db på 120.000 kunder. Ca 10.000 af dem er dubletter efter definitionen samme navn, adresse, postnr og by.

Hver gang to dubletter flettes sammen til eet emne, skal tomme felter udfyldes hvis de ikke er tomme hos det andet emne.

Desuden skal 4 andre tabeller have opdateret referencen til det ny kundeid for de emner som flettes ind i et andet.

Jeg kan ikke få det lavet, så det gøres på under en time. Det er kravet. Mine metoder er simpelthen allesammen for langsomme. Hvordan gør jeg det lynhurtigt ?
Avatar billede loukas Mester
10. marts 2011 - 23:34 #1
Det er meget svært at hjælpe uden nogle flere oplysninger.
Hvad er det for "metoder" du bruger som er langsomme.
Og hvordan ser tabellerne ud, hvad er det de skal "flettes" på.

Men ud over det, er mit første råd ikke at tillade dubletter i din tabel.
Avatar billede mousedreamer Nybegynder
11. marts 2011 - 05:23 #2
tabellerne skal flettes på tlfnr1, tlfnr2, tlfnr3, email, hjemmeside, antal ansatte og branche.

metode 1: Henter alle kunder ind i et dataset i c# på serveren, finder dubletterne(tager 1 minut) og kører 10000*4 update kommandoer. Det tager 10 timer selvom update komandoen er simpel: "update  tsubjectcontact set subjectID=[newID] where subjectID=[discardedID]". Skal jeg lave et index på tabellen for at update går hurtigere?

metode 2: Laver en ny tabel tpendingupdates med id updates som mangler. Derefter:"update  tsubjectcontact tsc, tpendingupdates tpu set tsc.subjectID=tpu.newID where tsc.subjectID=tpu.discardedID". Men den blev bare aldrig færdig.

Håber jeg bare mangler et index. Forstår ikke helt hvornår man skal bruge indexes.
Avatar billede mousedreamer Nybegynder
11. marts 2011 - 15:11 #3
Åh, dumme mig. Jeg skal altid lære ting i en helt anden rækkefølge end andre, bare for at være anderledes.

Det var simpelthen indexes der skulle til på de 4 update tabeller. Nu tager det kun 5 minutter istedet for 10 timer. Nice
Avatar billede mousedreamer Nybegynder
13. marts 2011 - 09:48 #4
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester