En Explain Plan kod>
skulle ha visat dig varför just du borde använda Exists . Vanligtvis kommer frågan Exists vs Count(*) . Finns är snabbare. Varför?
-
När det gäller utmaningar som presenteras av NULL:när subquery returnerar
Null, för IN blir hela fråganNull. Så du måste hantera det också. Men medExist, det är bara enfalsk. Mycket lättare att hantera. Helt enkeltINkan inte jämföra något medNullmenFinnskan. -
t.ex.
Finns (Välj * från din tabell där bla ='blabla');du får sant/falskt i det ögonblick en träff hittas/matchas . -
I det här fallet
INtar liksom positionen förCount(*)för att välja ALLA matchande rader baserat påWHEREeftersom det jämför alla värden.
Men glöm inte heller detta:
FINNSkörs med hög hastighet motIN:när underfrågans resultat är mycket stort.INgår föreEXISTS:när underfrågans resultat är mycket små.
Referens till för mer information: