Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Access und ADO:Count DB-Einträge und Return des Ergebnis

  Alt 2. Mär 2006, 13:03
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 .
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat