webForumDet fria alternativet

SQL-server prestanda EXISTS vs. Joinoperation

Databaser & SQLur Databashanterare & SQL

4 svar · 322 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Hej
Hur fungerar EXISTS samt IN rent prestandamässigt jämfört med tre jjoin-villkor, ska ha ut data och kan antingen använda en exits in eller tre join-villkor.

tacksam för svar :)

Medlem sedan dec. 200012 464 inlägg
#2

Om du kan uttrycka samma fråga på olika sätt så finns det inget som säger att en fråga av typ a alltid är snabbare än typ b. Idealt sett så skulle det alltid bli samma exekveringsplan.

Medlem sedan dec. 19995 875 inlägg
#3

Jag föreslår att du går igenom hur din fråga körs med Query Analyzer.
Aktivera "Show execution plan".

Du kan även ta fram antal läsningar/skrivningar som görs för att på det sättet kunna analysera det bästa alternativet.

Tänk också på att det inte bara handlar om hur man skriver frågan som avgör prestandan. Databasdesign tillsammans med val av index.

Medlem sedan dec. 19996 522 inlägg
#4

Tack, lite luddigt formulerat kanske. Jag är ute efter hur MS-SQL server tänker när den gör en in subselect eller EXISTS, för en join gör ju kartesiska produkt som jag tolkat det och det är ju kostsamt.

Brimba ska göra lite mätningar, kanske det lättaste :)

Medlem sedan dec. 200012 464 inlägg
#5

för en join gör ju kartesiska produkt

Näppeligen.

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