webForumDet fria alternativet

Optimalast: Select eller inner join

3 svar · 241 visningar · startad av Lukaspojken

LukaspojkenMedlem sedan maj 20011 312 inlägg
#1

Vilket av dessa två alternativ är den optimalaste?

SELECT A.A, B.A, C.A, D.A FROM A
INNER JOIN B ON A.A = B.A
INNER JOIN C ON A.A = C.A
INNER JOIN D ON A.A = D.A

Eller

SELECT A.A FROM A
SELECT B.A FROM B WHERE B.A = A.A
SELECT C.A FROM B WHERE C.A = A.A
SELECT D.A FROM B WHERE D.A = A.A

Finns det någonstans man kan läsa mer om detta?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Teoretiskt sett så är frågorna likvärdiga.

I praktiken kan de olika frågorna optimeras olika, så det går inte att säga något generellt.

LukaspojkenMedlem sedan maj 20011 312 inlägg
#3

Det finns inga riktlinjer för när det är bättre att använda det ena framför det andra?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det finns en fördel med att använda syntaxen med join eftersom det då är lättare att ändra från en inner join till en outer join men annars så är det mest en smakfråga.

Sedan så finns det olika DBMS som har begränsningar, t.ex. i Access så måste man använda parenteser om man har flera join så där är det mycket lättare att använda den andra varianten. I och med att måste använda parenteser så har man också bestämt sökvägen vilket egentligen skulle hanteras av optimeraren. Så för Access skulle jag rekommendera metod 2.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)