GET RUN TIME FIELD für 2 SQL Abfragen vergleichen.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

GET RUN TIME FIELD für 2 SQL Abfragen vergleichen.

Beitrag von tekko (ForumUser / 46 / 26 / 1 ) » 23.10.2020 16:24
Hallo Leute,

Code: Alles auswählen.

DATA t1 TYPE i.
DATA t2 TYPE i.


GET RUN TIME FIELD t1.
SELECT * FROM TESTDB INTO TABLE @DATA(lt_table1).
GET RUN TIME FIELD t1.

WRITE t1.


GET RUN TIME FIELD t2.
SELECT * FROM TESTDB INTO TABLE @DATA(lt_table2).
GET RUN TIME FIELD t2.

WRITE t2.
wie kann ich mit 'GET RUN TIME FIELD' die Laufzeit einer Abfrage innerhalb eines Reports vergleichen.

GET RUN TIME FIELD t1 misst die erste Abfrage.
Wenn ich nun GET RUN TIME FIELD t2 anlege, dann startet dieser nicht von null, sondern übernimmt die bereits abgelaufen Zeit. Wie kann ich dafür sorgen, dass die beiden Werte t1 und t2 unabhängig voneinander gemessen werden?

Statt:
t1: 15.000
t2: 30.000

soll stehen:
t1: 15.000
t2: 15.000


Vielen Dank :)


Re: GET RUN TIME FIELD für 2 SQL Abfragen vergleichen.

Beitrag von Shortcut IT (ForumUser / 15 / 1 / 1 ) » 23.10.2020 17:34
Hallo,
du überschreibst das Feld ja jedes mal...
Für vorher und nachher brauchst du 2 Felder.
Hier ein Beispiel:

Code: Alles auswählen.

data: tstart type f,
      tend type f,
      tms type f.
get run time field tstart.
" => hier die Verarbeitung
get run time field tend.
tms = ( tend - tstart ) / 1000.  " microsec to millisec, wenn du willst.
Write: 'Finished. Time for execution (ms):', (12) tms exponent 0.
Viele Grüße
Shortcut IT

Re: GET RUN TIME FIELD für 2 SQL Abfragen vergleichen.

Beitrag von DeathAndPain (Top Expert / 1466 / 162 / 331 ) » 26.10.2020 12:27
Für vorher und nachher brauchst du 2 Felder.
Die hat er ja auch mit seinem t1 und t2. Der Kern Deiner Antwort ist dennoch richtig: Man muss das vorherige Ergebnis vom nächsten abziehen.

Bei seinem Programm also:
DATA t1 TYPE i.
DATA t2 TYPE i.


GET RUN TIME FIELD t1.
SELECT * FROM TESTDB INTO TABLE @DATA(lt_table1).
GET RUN TIME FIELD t1.

WRITE t1.


GET RUN TIME FIELD t1.
SELECT * FROM TESTDB INTO TABLE @DATA(lt_table2).
GET RUN TIME FIELD t2.

t2 = t2 - t1.

WRITE t2.
@tekko: Wenn Du die Werte nicht nur per WRITE ausgeben, sondern auch intern noch weiter verwerten möchtest, brauchst Du natürlich noch ein zusätzliches Feld, in dem Du Dir den Wert t1 der ersten Messung aufhebst, bevor t1 bei der zweiten Messung überschrieben wird.

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Loop in der Endroutine
vor 3 Stunden von Mephisto1986 4 / 86
SELECT-OPTIONS ... FOR TYPE?!?
vor 17 Stunden von black_adept 20 / 628
Hierarchische Auswahl bei N:N
vor 19 Stunden von DeathAndPain 4 / 42

Vergleichbare Themen

At New <field> gibt immer field trotz gelichen fields
von mnd » 27.04.2012 15:42
Time`s up...
von black_adept » 01.08.2005 17:36
GET TIME STAMP
von SAP_ENTWICKLER » 06.06.2016 12:43
Time Out umgehen, ausschalten
von codierknecht » 23.04.2008 12:52
CONVERT TIME STAMP-Problem
von kbit100 » 15.06.2016 09:41