Avatar billede tobbi Nybegynder
08. december 2005 - 10:17 Der er 6 kommentarer

join versus subquery

hejsa

synes at kunne læse mig frem til at en join er hurtigere end eksempelvis:

select kol1 from table1 where kol1 in (select kol1 from table2)

nogen som har erfaringer med dette ?
Avatar billede dr_chaos Nybegynder
08. december 2005 - 11:28 #1
hvis jeg ikke tager helt fejl så er et join hurtigere fordi du netop bruger relationen i mellem 2 tabler og det er grundstenen i en relationel database.
Avatar billede bobber Nybegynder
08. december 2005 - 11:44 #2
Subquery bruger nested loops (Left semi join) , hvorimod joins bruger hash match joins, og fandt en forklaring på nested loops her:

A nested loops join is particularly effective if the outer input is small and the inner input is preindexed and large. In many small transactions, such as those affecting only a small set of rows, index nested loops joins are superior to both merge joins and hash joins. In large queries, however, nested loops joins are often not the optimal choice.

Du kan evt. selv teste og tjekke hvad ressourcen er på execution plan i enterprise manageren

select table1.kol1
from table1
inner join table2.kol1 on table1.kol1 = table2.kol1

Der var en lille forskel, men ikke meget, man ska op i større joins end ovenstående.
Avatar billede bobber Nybegynder
08. december 2005 - 11:46 #3
hov :-)

select table1.kol1
from table1
inner join table2 on table1.kol1 = table2.kol1
Avatar billede arne_v Ekspert
08. december 2005 - 20:43 #4
så vidt jeg ved afhænger det både af queryen og af SQLServer versionen

så derfor tror jeg at du skal være tilbageholdende med at vælge mellem dem
udfra performance hensyn
Avatar billede trer Nybegynder
16. december 2005 - 18:12 #5
Hej bobber

Siden SQL Server 7 kan SQL Server selv vælge join metode ud fra data og statistikker på data - du kan ikke forvente en bestemt join type...
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 17:01 #6
Du mangler at lukke spørgsmålet.
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