CS_SESSION-Package
Das Package CS_SESSION
stellt eine Schnittstelle bereit, über die der Datenbankservice und die Nutzungsgruppe der vorhandenen Session gewechselt werden können.
Hinweis:
Unterstützung für das Package CS_SESSION ist ab Version 19.28 in Oracle Database 19c und ab Version 23.9 in Oracle Database 23ai verfügbar.Wenn eine Verbindung mit einer Autonomous Database hergestellt wird, wird dieser Session eine Nutzungsgruppe zugewiesen. Beispiel: Eine Session kann mit einer Verbindung zum LOW-Service einer Autonomous Database erstellt werden. Sie können die Nutzungsgruppe wechseln, z.B. von LOW zu HIGH. Das CS_SESSION
-Package stellt eine API für den Wechsel bereit. Weitere Informationen finden Sie unter Vordefinierte Datenbankservicenamen für autonome Datenbanken.
Die Nutzungsgruppen bestimmen Parallelität und Parallelitätsgrad (DOP). Beispiel: Anweisungen zu einer Verbindung, die mit dem LOW-Datenbankservice hergestellt wurde, werden seriell ausgeführt. Anweisungen zu einer Verbindung mit dem HIGH-Datenbankservice werden parallel ausgeführt. Wenn eine Workload eine serielle Anweisungsverarbeitung erfordert, bei der für einige Anweisungen zu einer HIGH-Nutzungsgruppe gewechselt wird, können Sie mit dem Package CS_SESSION
wechseln.
Prozedur SWITCH_SERVICE
Diese Prozedur wechselt den Datenbankservice und die Nutzungsgruppe der aktuellen Session.
Syntax
CS_SESSION.SWITCH_SERVICE(service_name IN varchar2);
Parameter
Parameter | Beschreibung |
---|---|
service_name |
Gibt die zu aktualisierende Nutzungsgruppe an. Je nach Workload sind folgende gültige Werte verfügbar: |
Verwendungshinweise
Wenn die Prozedur aufgerufen wird, wechselt sie die Session auf den angegebenen Service und die zugehörige Nutzungsgruppe. Wenn der angegebene Service nicht in dieser Datenbank vorhanden ist, wird eine Fehlermeldung angezeigt. Beispiel: Wenn Sie "TP" als Servicenamen für eine Data Warehouse-Workload angeben, gibt der Fehler an, dass es sich nicht um einen gültigen Servicenamen handelt. Es wird kein Fehler gemeldet, wenn der aktuelle Service und der angegebene Service identisch sind.
Die Prozedur setzt keine Sessionattribute zurück. Alles, was der Benutzer vor dem Aufrufen dieser Prozedur für seine Session festgelegt hat, wird unverändert fortgesetzt. Beispiel: Wenn ein Sessionparameter geändert wurde und die Session später zu einem anderen Service wechselte, bleibt der Parameterwert gleich.
Beispiel
BEGIN
CS_SESSION.SWITCH_SERVICE('HIGH');
END;
/
Sicherheit und Zugriff
Dem Benutzer ADMIN
wird die Berechtigung EXECUTE
auf CS_SESSION
mit GRANT OPTION
erteilt. Die Berechtigung wird auch DWROLE
ohne GRANT OPTION
erteilt.
Zusätzliche Sicherheitsbetrachtungen
Wenn einem Benutzer EXECUTE
-Berechtigungen für diese Prozedur erteilt werden und dieser Benutzer nicht zu einem bestimmten Service wechseln soll, können Sie den Vorgang mit einem AFTER SET CONTAINER
-Trigger blockieren. Dies wird durch Erstellen eines AFTER SET CONTAINER
-Triggers erreicht.
CREATE OR REPLACE TRIGGER SESS_SWITCH
AFTER SET CONTAINER ON DATABASE
BEGIN
IF SYS_CONTEXT('USERENV','SESSION_USER') = 'USER' and
SYS_CONTEXT('USERENV','SERVICE_NAME') = 'serviceexample_low.adwc.oraclecloud.com'
THEN
NULL;
ELSE
RAISE_APPLICATION_ERROR(-20001, 'Denied! You are not allowed to switch service in the database');
END IF;
END;
/
Fehlermeldungen
In der folgenden Tabelle werden Ausnahmen für CS_SESSION
beschrieben
Fehler | Meldung | Ursache |
---|---|---|
20.001 | Ungültiger Service-Name. Gültige Werte sind HIGH, MEDIUM, LOW. | Für eine Data Warehouse-Workload wurde ein anderer Wert als "HIGH", "MEDIUM", "LOW" angegeben. |
20.001 | Ungültiger Service-Name. Gültige Werte sind HIGH, MEDIUM, LOW, TP, TPURGENT. | Für eine Transaktionsverarbeitungs-Workload wurde ein anderer Wert als "HIGH", "MEDIUM", "LOW", "TP", "TPURGENT" angegeben. |
20.002 | Servicewechsel nicht erfolgreich. | Wechsel zum neuen Service nicht erfolgreich. |
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Zugang zu Oracle Support
Der Zugriff auf und die Nutzung von Oracle-Supportservices durch Oracle-Kunden erfolgt gemäß den in der jeweiligen Oracle-Bestellung für die entsprechenden Services angegebenen Vertragsbedingungen.