Ergebnis 1 bis 3 von 3

Thema: Zeitdauer einer Funktionsausführung ermitteln

  1. #1
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard Gelöst Zeitdauer einer Funktionsausführung ermitteln

    Servus,

    Neues Board??? Sieht schick aus!!!

    Hier meine Frage:

    Ich habe eine Funktion die recht lange dauern kann, daher möchte ich die verweildauer in einer Tabelle eintragen.

    So soeht der Code aus:
    PHP-Code:
    DECLARE
    matview ALIAS FOR $1;
    entry t_matviews%ROWTYPE;
    dtnow TIMESTAMP;
    BEGIN

    dtNow 
    CURRENT_TIMESTAMP;

    SELECT INTO entry FROM t_matviews WHERE mv_name matview;
    IF 
    NOT FOUND THEN
    RAISE EXCEPTION 
    'Materialized view % does not exist.'matview;
    END IF;
    EXECUTE 'DELETE FROM ' || matview;
    EXECUTE 'INSERT INTO ' || matview
    || ' SELECT * FROM ' || entry.v_name;

    UPDATE t_matviews SET last_refresh=CURRENT_TIMESTAMPidauer=(CURRENT_TIMESTAMP dtNowWHERE mv_name=matview;

    RETURN;
    END 
    Scheinbar steht in der Variablen "CURRENT_TIMESTAMP" immer das selbe drin.
    Denn obwohl die Funktion etwa 2 minuten benötigt steht in der Tabelle bei idauer = 00:00:00

    Wo liegt mein Fehler?
    Geändert von ipConfig (22.01.2010 um 13:48 Uhr) Grund: Titeländerung um diesen Thread als gelöst zu markieren

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen
    Servus,

    Neues Board??? Sieht schick aus!!!

    Hier meine Frage:

    Ich habe eine Funktion die recht lange dauern kann, daher möchte ich die verweildauer in einer Tabelle eintragen.

    So soeht der Code aus:
    PHP-Code:
    DECLARE
    matview ALIAS FOR $1;
    entry t_matviews%ROWTYPE;
    dtnow TIMESTAMP;
    BEGIN

    dtNow 
    CURRENT_TIMESTAMP;

    SELECT INTO entry FROM t_matviews WHERE mv_name matview;
    IF 
    NOT FOUND THEN
    RAISE EXCEPTION 
    'Materialized view % does not exist.'matview;
    END IF;
    EXECUTE 'DELETE FROM ' || matview;
    EXECUTE 'INSERT INTO ' || matview
    || ' SELECT * FROM ' || entry.v_name;

    UPDATE t_matviews SET last_refresh=CURRENT_TIMESTAMPidauer=(CURRENT_TIMESTAMP dtNowWHERE mv_name=matview;

    RETURN;
    END 
    Scheinbar steht in der Variablen "CURRENT_TIMESTAMP" immer das selbe drin.
    Denn obwohl die Funktion etwa 2 minuten benötigt steht in der Tabelle bei idauer = 00:00:00

    Wo liegt mein Fehler?
    Code:
    test=# begin;
    BEGIN
    test=*# select now();
                  now
    -------------------------------
     2010-01-22 12:14:27.693285+01
    (1 row)
    
    test=*# select current_timestamp;
                  now
    -------------------------------
     2010-01-22 12:14:27.693285+01
    (1 row)
    
    test=*# select timeofday();
                  timeofday
    -------------------------------------
     Fri Jan 22 12:14:37.521412 2010 CET
    (1 row)
    
    test=*# select timeofday();
                  timeofday
    -------------------------------------
     Fri Jan 22 12:14:39.542168 2010 CET
    (1 row)
    
    test=*# select current_timestamp;
                  now
    -------------------------------
     2010-01-22 12:14:27.693285+01
    (1 row)
    Du siehst den Unterschied?

    current_timestamp ist nix weiter als now(), welches den timestamp zu Begin der laufenden TX liefert. timeofday() hingegen liefert den wirklich wahren Zeitpunkt.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Das wars!
    Dankeschön

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum