@all
danke für die rege Beteiligung. Es freut mich, dass die Fragestellung grünlich analysiert wird und verschiedene Lösungsansätze diskutiert werden.
In meinem Fall ist die Id eineindeutig und als PRIMARY key definiert.
Was uns alle interessieren dürfte, ist die Frage ob der 'Count' auf dem Server oder dem Client läuft. Bei einem Btree+ indizierten Feld würde die Suche nach ein paar wenigen Zugriffen durchgeführt sein und höchstens die Indexdaten (für die Suche auf dem Client) über das Netzwerk transportiert werden.
Performant ist es aus meiner Sicht, wenn der
SQL-Server genau ein Byte zurückgibt: 0 oder 1. Das heißt, im Idealfall läuft die Suche über den Index auf dem Server, da dort die Indexdaten i.d.R. sowieso im Cache stehen und die Suche mit "~Lichtgeschwindigkeit" erfolgt. In dem Fall würde netto nur 1 Byte (true oder false) übers Netz transportiert werden.
Somit ergeben sich 2 Fragen:
1. Wieviel Traffic löst der Count aus, wieviel die StoredProcedure?
2. Gibt es eine Möglichkeit zu messen, wieviel Traffic eine
SQL-Abfrage tatsächlich auslöst?
grüße
ils