Avatar billede thoeger_poertner Nybegynder
07. august 2005 - 20:10 Der er 5 kommentarer og
1 løsning

Optimering ved store datamænger

Jeg er ved at lave et program til at gennemparse en tabel.
Tabellen fylder ca. ~35gb.

Prgrammet kører således:
-Select første række
(-Opret ny tabel udfra kriterie)
-Parsning af felt i rækken
-Indsæt data i ny tabel
-Slet række
(i en løkke selvfølgelig)

Hver "ny tabel" kommer til at indeholde 2-5 millioner rækker. (7 colums med 5-15 tegn i hver, numeriske data. se struktur nedenfor)

Mit spørgsmål går på hvordan jeg kan optimere dette mest muligt, da programmet skal køre simultant med at førstnævnte tabel fyldes op. Senere skal jeg kunne søge i disse data, så det skal helst være så smart opbygget som muligt.

Skal jeg f.eks. lave en id colum, således mssql kan indeksere ud fra den, eller giver det ingen mening? (jeg har ikke brug for id)

Generelle tanker omkring optimeringen vil være kærkomment.

Struktur på den "lille" tabel:
[dato] [char] (10)     
[protocol] [tinyint]   
[outip] [varchar] (15) 
[outport] [varchar] (5) 
[inip] [varchar] (15)   
[inport] [varchar] (5) 
[bits] [varchar] (12)   

På forhånd mange tak.
Avatar billede Stjannersen Praktikant
08. august 2005 - 15:53 #1
Det var en ordentlig mundfuld data.

Jeg antager ikke der er noget at hente på at fidle med feltstørrelserne, men for at kvikke søgningen op (Og inddateringen ned :-() kan man vælge at lægge index på de felter der søges på.

Hvilke felter indgår i primærnøgle?
Hvilke felter (og feltkombinationer) vil der blive søgt på ?
Avatar billede thoeger_poertner Nybegynder
09. august 2005 - 12:02 #2
Feltstørrelserne er så små som overhovedet muligt, men jeg er ikke 100% på felttyperne.

Der vil blive søgt på dato, inip, outport og protocol i kombination. Dem kan jeg jo så indexere. At indsætningen af data kommer til at ta lidt ekstra tid, tror jeg ikke vil betyde noget.

Jeg ved ikke hvad en primærnøgle er? :D
Avatar billede Stjannersen Praktikant
09. august 2005 - 12:30 #3
Primærnøglen er det - eller de felter - som unik identificerer den enkelte post. Og umiddelbart ser det ikke ud til at du har nogle felter der er i stand til at gøre dette. Primærnøglen er også et index, med den finesse at det er unikt.
Men sæt index op for de meldte felter - evt. et ad gangen så du kan vurdere om du 'vinder' noget ved det enkelte index.
Avatar billede thoeger_poertner Nybegynder
31. august 2005 - 01:58 #4
Ha' points?
Avatar billede Stjannersen Praktikant
31. august 2005 - 08:43 #5
Tjahh - man kan vel bøje sig efter guldet :-)

Jeg håber at disse hints hjalp dig-
Avatar billede thoeger_poertner Nybegynder
31. august 2005 - 09:02 #6
Det gjorde de, tak!
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