/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Index - MSSQL. Gode forslag modtages gerne
Fra : Torben Friis


Dato : 18-02-04 17:46

Hej

Jeg har en tabel, som indeholder på nuværende tidspunkt over 100 mio record.
Det er et log system fra et program.
Jeg skal udtrække nogle totaler, men de tager vildt lang tid. (læs mange
minutter)
Jeg har sat index på, men sikkert forkert.

Tabellen indeholder
id
start
slut
total
gruppe

De er alle af typen int, og id er primary key.
Start og slut er dato omregnet til sekunder siden 1970 (unix-dato regnes som
sekunder siden 1970).

Jeg skal have talt totaler sammen fra en periode, så jeg har brugt følgende
query:

select sum(total)
from log
where (star<=1072998000 and slut>=1072911600) and gruppe=1

jeg har haft lavet index, men jeg syntes ikke rigtigt at det går hurtigt
nok.

Der er ca. 50.000 record om dagen, så den skal kun lægge 50.000 tal sammen.

De index jeg har haft lavet er følgende:

create index log_index1 on log (start)
create index log_index2 on log (slut)
create index log_index3 on log (gruppe)
create index log_index4 on log (start,slut,gruppe)


Er der nogen der har nogle gode forslag, så det kommer til at gå lidt
hurtigere?


/torben



 
 
Troels Arvin (19-02-2004)
Kommentar
Fra : Troels Arvin


Dato : 19-02-04 12:26

On Wed, 18 Feb 2004 17:45:57 +0100, Torben Friis wrote:

> jeg har haft lavet index, men jeg syntes ikke rigtigt at det går hurtigt
> nok.

Start med at finde ud af, om det index overhovedet bliver brugt. MSSQL må
have noget i stil med EXPLAIN, hvor man får forklaret, hvorledes DBMSet
har tænkt sit at udføre et bestemt query.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste