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