Hallo Kollegen,
ich könnte mal Eure Hilfe gebrauchen. Den folgenden Loop habe ich geschrieben
DECLARE
d number(38) := 0;
e number(38) := 100000;
scr_start TIMESTAMP(9);
scr_ende TIMESTAMP(9);
scr_dauer INTERVAL DAY TO SECOND;
BEGIN
scr_start := SYSTIMESTAMP;
FOR i IN 1..e LOOP
d := i;
DBMS_OUTPUT.PUT_LINE(d);
END LOOP;
scr_ende := SYSTIMESTAMP;
scr_dauer := scr_ende - scr_start;
DBMS_OUTPUT.PUT_LINE('Dauer: '||scr_dauer);
END;
/
Obwohl der Loop sehr einfach ist und innerhalb der Schleife fast nichts passiert, dauert die Antwort von der DB ewig (mehrere Minuten). Allein die 100000 Durchläufe können m.E. die Dauer nicht verursachen. Kann es sein, dass mein DB-Schema in der Performance begrenzt wurde? Wie kann ich das ggf. herausfinden.
Besten Dank erstmal und viele Grüße
ich könnte mal Eure Hilfe gebrauchen. Den folgenden Loop habe ich geschrieben
DECLARE
d number(38) := 0;
e number(38) := 100000;
scr_start TIMESTAMP(9);
scr_ende TIMESTAMP(9);
scr_dauer INTERVAL DAY TO SECOND;
BEGIN
scr_start := SYSTIMESTAMP;
FOR i IN 1..e LOOP
d := i;
DBMS_OUTPUT.PUT_LINE(d);
END LOOP;
scr_ende := SYSTIMESTAMP;
scr_dauer := scr_ende - scr_start;
DBMS_OUTPUT.PUT_LINE('Dauer: '||scr_dauer);
END;
/
Obwohl der Loop sehr einfach ist und innerhalb der Schleife fast nichts passiert, dauert die Antwort von der DB ewig (mehrere Minuten). Allein die 100000 Durchläufe können m.E. die Dauer nicht verursachen. Kann es sein, dass mein DB-Schema in der Performance begrenzt wurde? Wie kann ich das ggf. herausfinden.
Besten Dank erstmal und viele Grüße
Comment