webForumDet fria alternativet
Logga in / Bli medlem

IN (SELECT ...) går seeegt

Databaser & SQL

4 svar · 233 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Trådstart#1

Jag har en liten fråga som tar, enligt mig, alldeles för lång tid.

SELECT a, b FROM tabell1
WHERE a NOT IN
(SELECT DISTINCT a FROM tabell2)

tabell1 innehåller lite drygt 1000 poster och tabell2 cirka 3000.

a är en Double och b en sträng på 75 tecken. Frågan tar cirka 20 sekunder att köra och returnerar ca 170 poster... det känns som om jag har gjort något dumt. Varför tar det så lång tid?

DBMS = Access

Medlem sedan juni 200032 967 inlägg
#2

Blir det någon skillnad om du tar bort DISTINCT?

Medlem sedan dec. 20003 887 inlägg
#3

Nja, någon tiondel hit eller dit.

Medlem sedan dec. 200012 464 inlägg
#4
SELECT t1.a, t1.b FROM tabell1 t1 left outer join tabell2 t2
on t1.a = t2.a
WHERE t2.a is null

Vilka nycklar/index har du?

Medlem sedan dec. 20003 887 inlägg
#5

Den metoden gick ju ljusår snabbare :)

t1.a är primärnyckel. t2.a är foreignkey.

386 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
127 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)