Gibt es in PL/SQL Sleep oder Wait?

Ich möchte mittels PL/SQL ein Szenario simulieren, welches die DB unter definierte Last setzt. Dazu müssen diverse Datenbankzugriffe einzelner Prozesse simuliert werden. Um die Last eines Prozesses zu simulieren, möchte ich einen PL/SQL Block über eine sqlplus session ausführen. Hierzu werden in einer Schleife die entsprechenden INSERT,UPDATE,DELETE und SELECT Statements abgesetzt. Damit die Schleife nur 100 Durchläufe je Sekunde ausführt und nicht etwa den gesamten DB-Server unter Volllast setzt, soll die Schleife ausgebremst werden. Die Zeit und Zeitdifferenzen kann ich mittels Sysdate messen, allerdings fehlt mir ein Mittel um die Session schlafen zu legen. Gibt es hier so etwas wie SLEEP oder WAIT?

Die Schleife soll etwa wie foilgt aussehen:

starttime := SYSDATE;
counter := 0;
FOR IDX IN 1..1000000 LOOP
 // sql statements
 currenttime := SYSDATE;
 counter := counter + 1;
 IF counter / (currenttime-starttime) \> 100 THEN
 // warte 1 Sekunde
 END IF;
END LOOP;

Gruß Markus

Hallo Markus,

klar gibt’s das bei ORACLE: im Package DBMS_LOCK existiert die Prozedur SLEEP.

Ich hoffe, dieser kleine Hinweis hilft schon weiter.

Grüßt: Guido

Hallo Markus,

klar gibt’s das bei ORACLE: im Package DBMS_LOCK existiert die
Prozedur SLEEP.

Ich hoffe, dieser kleine Hinweis hilft schon weiter.

Danke, das hat mich weiter gebracht!

Gruß Markus