Avatar billede Mcoroklo Nybegynder
26. marts 2009 - 14:17 Der er 2 kommentarer og
1 løsning

MySQL exists kommando giver uendelig løkke / tager meget meget lang tid

Jeg har den her query:

SELECT * FROM skole k
WHERE EXISTS (SELECT *
FROM tbl_buys P1 JOIN tbl_cust C1 ON P1.custID=C1.custID
WHERE C1.skoleID = k.skoleID
AND P1.buyDate > 20090201
AND P1.buyDate < 20090301
);

Dette skulle virke meget godt - Men det tager 60sekunder + at køre. Jeg tror der kommer en form for uendelig løkke... (er dette overhoved muligt i SQL ;-) ).

Delen der går galt er:
C1.skoleID = k.skoleID
Men mit eksempel minder om dem jeg kan finde på nettet, så jeg aner virkelig ikke hvad der går galt her.
Avatar billede arne_v Ekspert
26. marts 2009 - 17:17 #1
Har du index paa:

tbl_buys P1.custID
tbl_cust.custID
tbl_cust.skoleID
tbl_buys P1.buyDate

?

Nej => proev at saette dem paa !
Avatar billede Mcoroklo Nybegynder
31. marts 2009 - 14:00 #2
Det var problemet.

Tak.
Avatar billede arne_v Ekspert
31. marts 2009 - 14:56 #3
saa smider jeg et svar
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