Hallo
Muß das Thema leider wieder ausgraben. Die Tabelle hat mittlerweile 700.000 Datensätze. Mir ist aufgefallen, daß der tägliche COPY-Befehl, um die neuen Datensätze in die Tabelle zu kopieren immer mehr Laufzeit benötigt. Ich vermute das die Triggerfunktion schuld ist. Die Funktion ist:
Code:
DECLARE
aktoid oid;
BEGIN
aktoid = NEW.oid;
update Testtabelle set unixts=(select extract(epoch from (select to_timestamp(datum||uhrzeit,'DD.MM.YYYYHH24:MI:SS') from Testtabelle where oid=aktoid))) where oid=aktoid;
RETURN NEW;
END;
Ich denke die Suche nach dem Datensatz mit der aktuellen OID ist hier die Bremse. Die OID ist die PostgreSQL eigene. Ich erzeuge selbst keine. Eigentlich müßte doch der aktuelle Datensatz bekannt sein, wenn der Trigger nach einem INSERT auslöst.
Kann mir jemand einen Optimierungstip geben oder eine alternative Funktion?
Lesezeichen