Anfang des Inhaltsbereichs

Laufzeitmessung von Datenbankzugriffen Dokument im Navigationsbaum lokalisieren

Das folgende Beispiel soll Ihnen den Einsatz der Anweisung GET RUN TIME FIELD zur Laufzeitmessung von Datenbankzugriffen demonstrieren.

Beispiel

REPORT demo_special_tech_get_runt_db.

DATA: t1 TYPE i,
      t2 TYPE i,
      t  TYPE p DECIMALS 2.

PARAMETERS n TYPE i DEFAULT 10.

DATA: toff  TYPE p DECIMALS 2,
      tsel1 TYPE p DECIMALS 2,
      tsel2 TYPE p DECIMALS 2.

TABLES sbook.

t = 0.
DO n TIMES.
  GET RUN TIME FIELD t1.

* Offset

  GET RUN TIME FIELD t2.
  t2 = t2 - t1.
  t = t + t2 / n.
ENDDO.
toff = t.
WRITE: / 'Mean Offset Runtime     :', toff, 'microseconds'. "#EC
OTEXT

SKIP.
t = 0.
DO n TIMES.
  GET RUN TIME FIELD t1.

  SELECT * FROM sbook.
  ENDSELECT.

  GET RUN TIME FIELD t2.
  t2 = t2 - t1.
  t = t + t2 / n.
ENDDO.
tsel1 = t - toff.
WRITE: / 'Mean Runtime SELECT *   :',
         tsel1, 'microseconds'.

SKIP.
t = 0.
DO n TIMES.
  GET RUN TIME FIELD t1.

  SELECT carrid connid FROM sbook
                       INTO (sbook-carrid, sbook-connid).

  ENDSELECT.

  GET RUN TIME FIELD t2.
  t2 = t2 - t1.
  t = t + t2 / n.
ENDDO.
tsel2 = t - toff.
WRITE: / 'Mean Runtime SELECT List:',
          tsel2, 'microseconds'.

Die Ausgabe kann etwa wie folgt aussehen:

Mean Offset Runtime     :                25,22 microseconds

Mean Runtime SELECT *   :           257.496,85 microseconds

Mean Runtime SELECT List:           167.904,63 microseconds

In diesem Beispiel wird die Laufzeit von drei Programmsegmenten untersucht:

· ein ‘leeres’ Programmsegment zur Bestimmung des Offsets der Laufzeitmessung

· ein Programmsegment, das alle Daten der Datenbanktabelle SBOOK liest

· ein Programmsegment, das zwei Spalten der Datenbanktabelle SBOOK liest.

Das Ergebnis zeigt, daß der Offset der Laufzeitmessung hier vernachlässigbar ist und daß das Lesen bestimmter Spalten einer Tabelle schneller ist als das Lesen ganzer Zeilen.

Ende des Inhaltsbereichs