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;