Avatar billede itognet Nybegynder
15. marts 2002 - 12:22 Der er 2 kommentarer

Optimere en Select Not IN linie vs. Left join

Hej, Det er lykkedes mig med hjælp at lave denne SQL linie.
Den finder alt personale som ikke er på vagt mellem datoerne.
Problemmet er at den tager 3 min. og 34 sekunder at udføre!

Jeg har lod mig fortælle at man kan lave en left join - Men hvordan ?? Og at det skulle kunne forøge hastigeden.(Det er over mit niveau)

SELECT DISTINCT Navn, Medarbejdernr FROM Personale WHERE Medarbejdernr NOT IN
(SELECT Medarbejdernr FROM vagtplan WHERE Dato>='01-01-2001' AND Dato<='01-03-2002' and Personale.JobStatus = 'True');

Avatar billede terry Ekspert
15. marts 2002 - 13:30 #1
Try putting INDEXES on the fields Navn Medarbejdernr JobStatus and dato
Avatar billede haunted Nybegynder
02. april 2002 - 15:48 #2
Det skulle være nok at putte indeks på dine where variable...altså Dato og jobstatus.

Iøvrigt....du bruger vel ikke DB2 datoer, for så er de angivet i aaaa-mm-dd.
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