Nee, isser wirklich nicht.
Wie wurde denn getestet? Etwa so?
Delphi-Quellcode:
...
ADOTabel1.open;
T := GetTickCount;
For i:=1 to 20000000 do v := ADOTable1.RecordCount;
ShowMessage (Format('Wow, wie schnell: %d ticks', [GetTickCount - t]));
...
Da Recordcount nur bei einer geöffneten Tabelle funktioniert, muss ja wohl logischerweise die Tabelle irgendwie geöffnet sein. Ergo muss man das mitberücksichtigen, ausgenommen, Du willst wissen, wie viele Records deine geöffnete Tabelle hat, dann natürlich nicht. Is ja logisch.
Wenn ich das mit
Access mache (13.000 Records), ist das Verhältnis zwischen Recordcount und 'select count (*)' etwa 2:1, der Aufruf via Recordcount dauert also etwa doppelt so lange. Dabei hatte ich zum Testen die Tabelle vorher geöffnet, insofern war sie schon im Cache.
Bei einem
SQL-Server sieht die Sache irgendwie ein klein wenig anders aus: 100:1 (Recordcount ggü. Select count (*)) bei serverseitigem und 10:1 bei clientseitigem Cursor. Is ja auch logisch, weil der Server im anderen Zimmer steht. Das sind 5 Meter + Wand (Beton). Das dauert
.