07. maj 2004 - 11:17Der er
3 kommentarer og 1 løsning
Langsom SQL statement
Jeg har en åndsvagt langsom SQL statement jeg helst skulle have til at køre hurtigere på en eller anden måde:
"SQLstmt = "SELECT DISTINCT Field1 FROM Tabte1 WHERE Field1 IN (SELECT DISTINCT Field2 FROM Table2)"
Jeg har 4 tabeller med et unikt ID der går igen i alle 4 tabeller. Jeg har brug for at lave en liste over de brugere der er registreret i en eller flere af disse tabeller. Ovenstående SQL kommando fungerer fint nok (inkluderer dog kun 2 tabeller) - den er bare sindssygt langsom - tager 35-40 sekunder om at loade, selvom der kun er et simpelt loop efter den, der bladrer igennem de valgte data. Hvorfor er den så langsom?
Prøv med en outer join i stedet: SELECT Table1.Field1 FROM Table1 LEFT JOIN table2 ON table1.Field1 = table2.Field2 WHERE table2.field2 is null
Derud over er det en SQL oftest hurtigts, når den gemmes i en forespørgsel, som så eksekveres i stedet for den rene SQL (da forespørgslen er kompileret da den blev gemt)
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.