Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:plsql_sleep_19c

Dies ist eine alte Version des Dokuments!


PL/SQL - Eine DB Session "schlafen" legen - Wie und welche Sleep Funktion einsetzen?

Aufgabe: Eine Datenbank Session soll mit einer sleep Funktion eine gewisse Zeit pausiert werden.

Möglichkeiten:

APEX Installiert:

  • APEX_UTIL.pause

DB Version vor 18c:

  • Java
  • DBMS_LOCK.sleep

DB Version ab 18c

  • DBMS_SESSION.sleep

APEX_UTIL.pause

Ist in der DB APEX installiert, kann auf APEX_UTIL zurückgegriffen werden.

10 Sekunden warten:

BEGIN
 APEX_UTIL.PAUSE(10);
END;
/

Java

Verwendung der Java Klasse „java.lang.Thread“

CREATE OR REPLACE PROCEDURE sleep_java(p_milli_seconds IN NUMBER) AS LANGUAGE JAVA NAME 'java.lang.Thread.sleep(long)';

Nachteil: In den AWR / Statspack Berichten wird dann OVJM gerne als häufigster Wait aufgezeigt, sind noch andere Java Komponenten im Einsatz verfälscht das stark das Ergebniss.


DBMS_LOCK.sleep

Nachteil:

  • Sicherheitsprobleme mit DBMS_LOCK habe dazugeführt das her keine Public Synonym in der DB für dieses Package vorliegt und damit ein direkter Grant benötigt wird!

Ab 18c auf keine Fall mehr verwenden!


DBMS_SESSION.sleep

Ab der Version 18!


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/plsql_sleep_19c.1613722907.txt.gz · Zuletzt geändert: 2021/02/19 09:21 von gpipperr