Laufzeit einer Abfrage/eines Triggers

Hallo Wissende,
ich möchte die Laufzeit (die Dauer) einer Abfrage bzw. einer Triggerfunktion ermitteln.
Leider funktioniert das nicht wie gedacht - hatte darüber auch schon mal was gelesen - kann es aber nicht finden.

Problem ist, dass alle Zeiten gleich sind. Ich habe es auch schon mit einem zusätzlichen Trigger bei AfterUpdate versucht - bringt aber auch nichts.

Wie kann ich die Laufzeit eines Triggers ermitteln (loggen)?

CREATE TRIGGER mytrg_after_ins_abgleich
  BEFORE INSERT
  ON tab_abgleich
  FOR EACH ROW
  EXECUTE PROCEDURE mytrg_after_ins_abgleich();

CREATE OR REPLACE FUNCTION mytrg_after_ins_abgleich()
  RETURNS trigger AS
$BODY$
DECLARE ssql character varying;
 rs      record;
 stime timestamp;
 etime timestamp;
BEGIN
-- Startzeitpunkt setzen
   stime = now();

   ssql= 'select * from ' || 'meine_umfangreiche_abfrage';

   ---- dies dauert ein paar Sekunden ----
   for rs in execute ssql
   LOOP
      raise notice '%',now();
   END LOOP;
   -----------------------------------------------
    
-- Endezeitpunkt setzen
   etime = now();
   raise notice '%',now();
   
   new.stimestamp = stime;
   new.etimestamp = etime;
   return new;
END
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

now() liefert die Startzeit der aktuellen Transaktion. Ein TRIGGER läuft innerhalb einer Transaktion. Damit ist die Startzeit imme rgleich :wink:

Was Du suchst ist timeofday().

test=# begin;
BEGIN
test=*# select now();
              now              
-------------------------------
 2017-03-06 13:36:54.327738+01
(1 Zeile)

test=*# select timeofday();
              timeofday              
-------------------------------------
 Mon Mar 06 13:37:42.164028 2017 CET
(1 Zeile)

test=*# select now();
              now              
-------------------------------
 2017-03-06 13:36:54.327738+01
(1 Zeile)

test=*# select timeofday();
              timeofday              
-------------------------------------
 Mon Mar 06 13:37:49.415859 2017 CET
(1 Zeile)

test=*#

Hallo akretschmer ,
vielen Dank für dioe schnelle Antwort.
Dass es so einfach wird hätte ich gar nicht gedacht :slight_smile: .

Gruß Steffen