waldbauer.com

waldbauer.com (http://www.waldbauer.com/vb/index.php)
-   SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum (http://www.waldbauer.com/vb/forumdisplay.php?f=57)
-   -   Zeitmessung in OA4 (http://www.waldbauer.com/vb/showthread.php?t=2079)

Zeitmessung in OA4
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen Leute !

Seit einiger Zeit teste ich unsere Schnittstelle und bin restlos begeistert.
Vor allem die Gewschwindigkeit mit der die Daten abgefragt werden überrascht mich. Ich wollte jetzt einmal ein paar Vergleiche machen aber ich finde keine vernünftige Lösung die Zeit einer Abfrage in OA4 zu messen.

Beispiel: Die Testdatenbank auf der ich probiere hat 133.740 Datensätze, 6 Felder und auf allen (ausgenommen dem Memo) einen Index. In OA4 dauert die Abfrage FROM CANONET WHERE TEXT MATCHES "*DRUM*" gefühlte 2 - 3 Sekunden.

Mit dem Plugin ist die Abfrage nicht nennenswert - siehe Anhang. Ich möchte es nun genau wissen aber ich finde keine passende Lösung. Programmiervorschläge willkommen :)

Liste der Anhänge anzeigen (Anzahl: 1)
Noch schlimmer ist es, wenn ich ein MEMOFELD abfrage. Open Access User wissen, das dauert ewig und wirklich - eine Abfrage mit FROM CANONET WHERE MEMOFELD CONTAINS "*TEST*" braucht sicher schlappe 30 Sekunden.

Man sehe und staune wie schnell das Interface das macht - wobei ich als OA4 User seit jeher keine Abfrage auf das Memo genau aus diesem Grund mache.

Liste der Anhänge anzeigen (Anzahl: 1)
Also ich trau mich schon gar nicht mehr in OA4 zu testen. Man glaubt gar nicht wie schnell schnell sein kann. Jetzt werde ich mal bei Gelegenheit mehrere Tabellen Abfragen (also Joins probieren).

@Heinz

Ich müsste das Tempo in OA4 messen - hast du eine Idee wie man die Sekunden vom Start der Abfrage bis zur Ergebnisliste messen kann ?

Zeiitmessung inOA
 
Hallo Günter,

das mit der Zeitmessung ist m.E. einfach zu lösen:
  • Du definierst eine Variable vom Typ Zeit
  • unmittelbar vor der Funktion, deren Zeit Du messen möchstest, weist Du der Variablen die aktuelle Sstem-Zeit zu (varname=SYSTIME)
  • unmittlenar nach der zu messenden Funktion weist Du der Variablen das Ergebnis der Operation SYSTIME-varname
Das Ergebnis in varname ist dann die vergangene Zeit

So hatte ich früher z.B. Warteschleifen programmiert.

Schöen Grüße
Heinz

Es wäre noch Klasse wenn es Milli- oder Mikrosekunden gäbe aber das werden wir wahrscheinlich als OAC machen müssen. Wobei es bei dem Tempounterschied ohnehin schon egal ist ob OA4 nun 15 oder 30 Sekunden braucht währenddessen das MySQL Plugin das in knapp 1 Sekunde erledigt.

Das wird leider so mit OA-Standard-Mitteln nicht gehen. OA kennt nur Sekunden beim Variablen-Typ TIME. Aber vielleicht - wenn es denn noch nötig sein sollte - hilft Dir die STOPPUHR aus dem DESK-MANAGER. Die zeigt nämlich auch Hunderstel-Sekunden an. Die müsste über ein Makro (<F8> S <F6>) gestartet werden und später über ein zweites Makro (<F8> S <F5> angehalten werden. Dann wird die vergangene Zeit auf dem Bildschirm angezeigt. Wenn Du allerdings so kleine Werte messen willst, wird wahrscheinlich schon der Aufruf der Stoppuhr Dein Ergebnis erheblich verfälschen. Auch im Computer-Zeitalter ist der jahrzehnte alte Grundsatz "Wer misst, misst Mist!" noch gültig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.