webForumDet fria alternativet

SQL-server prestanda EXISTS vs. Joinoperation

4 svar · 322 visningar · startad av erka

erkaMedlem sedan dec. 19994 597 inlägg
#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 :)

LarsGMedlem sedan dec. 200012 465 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.

BrimbaMedlem sedan dec. 19992 966 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.

erkaMedlem sedan dec. 19994 597 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 :)

LarsGMedlem sedan dec. 200012 465 inlägg
#5

för en join gör ju kartesiska produkt

Näppeligen.

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb