Performance-Entscheidung: EXISTS oder COUNT?

08/10/2007 - 11:50 von Jan Weingärtner | Report spam
Hallo,

ich möchte prüfen, ob Datensàtze mit bestimmten Spaltenwerten
vorhanden sind oder nicht.

Was ist schneller, IF EXISTS(SELECT * FROM ...) ...
oder die Verwendung von COUNT?
Aus dem geschàtzten Ausführungsplan kann ich das nicht wirklich
ableiten.

Làßt sich da eine allgemeine Aussage treffen?

Gruß und danke,
Jan
 

Lesen sie die antworten

#1 Hannes Brunner
11/10/2007 - 11:50 | Warnen spam
Hallo Jan,

Jan Weingàrtner schrieb:
Hallo,

ich möchte prüfen, ob Datensàtze mit bestimmten Spaltenwerten
vorhanden sind oder nicht.

Was ist schneller, IF EXISTS(SELECT * FROM ...) ...
oder die Verwendung von COUNT?
Aus dem geschàtzten Ausführungsplan kann ich das nicht wirklich
ableiten.

Làßt sich da eine allgemeine Aussage treffen?



EXISTS kann aufhören sobald der erste Datensatz gefunden wurde, COUNT
muss dagegen alle einsammeln. Daher kommt EXISTS tendenziell mit weniger
Lesevorgàngen aus und ist vorzuziehen. Wobei es natürlich aus Szenarien
gibt in denen es keinen Unterschied gibt, z.B. wenn es eh nur maximal
einen Datensatz gibt der die Bedingung erfüllt, sprich COUNT entweder 0
oder 1 liefert.

Gruß
Hannes

Ähnliche fragen